mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-08-24 18:25:50 +00:00
![Alexander Larsson](/assets/img/avatar_default.png)
2008-12-15 Alexander Larsson <alexl@redhat.com> * test/Makefile.am: * test/test-eel-background.c: Added. * test/test-eel-editable-label.c: Added. * test/test-eel-image-scrolled.c: Added. * test/test-eel-image-table.c: Added. * test/test-eel-labeled-image.c: Added. * test/test-eel-pixbuf-scale.c: Added. * test/test-eel-widgets.c: Added. * test/test.h: Import eel tests svn path=/trunk/; revision=14816
84 lines
2.2 KiB
C
84 lines
2.2 KiB
C
#include "test.h"
|
|
|
|
#include <eel/eel-gdk-pixbuf-extensions.h>
|
|
|
|
#include <sys/time.h>
|
|
|
|
|
|
#define N_SCALES 100
|
|
|
|
#define DEST_WIDTH 32
|
|
#define DEST_HEIGHT 32
|
|
|
|
int
|
|
main (int argc, char* argv[])
|
|
{
|
|
GdkPixbuf *pixbuf, *scaled;
|
|
GError *error;
|
|
struct timeval t1, t2;
|
|
int i;
|
|
|
|
test_init (&argc, &argv);
|
|
|
|
if (argc != 2) {
|
|
printf ("Usage: test <image filename>\n");
|
|
exit (1);
|
|
}
|
|
|
|
error = NULL;
|
|
pixbuf = gdk_pixbuf_new_from_file (argv[1], &error);
|
|
|
|
if (pixbuf == NULL) {
|
|
printf ("error loading pixbuf: %s\n", error->message);
|
|
exit (1);
|
|
}
|
|
|
|
printf ("scale factors: %f, %f\n",
|
|
(double)gdk_pixbuf_get_width(pixbuf)/DEST_WIDTH,
|
|
(double)gdk_pixbuf_get_height(pixbuf)/DEST_HEIGHT);
|
|
|
|
gettimeofday(&t1, NULL);
|
|
for (i = 0; i < N_SCALES; i++) {
|
|
scaled = eel_gdk_pixbuf_scale_down (pixbuf, DEST_WIDTH, DEST_HEIGHT);
|
|
g_object_unref (scaled);
|
|
}
|
|
gettimeofday(&t2, NULL);
|
|
g_print ("Time for eel_gdk_pixbuf_scale_down: %ld msecs\n",
|
|
(t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec) / 1000);
|
|
|
|
|
|
|
|
gettimeofday(&t1, NULL);
|
|
for (i = 0; i < N_SCALES; i++) {
|
|
scaled = gdk_pixbuf_scale_simple (pixbuf, DEST_WIDTH, DEST_HEIGHT, GDK_INTERP_NEAREST);
|
|
g_object_unref (scaled);
|
|
}
|
|
gettimeofday(&t2, NULL);
|
|
g_print ("Time for INTERP_NEAREST: %ld msecs\n",
|
|
(t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec) / 1000);
|
|
|
|
|
|
gettimeofday(&t1, NULL);
|
|
for (i = 0; i < N_SCALES; i++) {
|
|
scaled = gdk_pixbuf_scale_simple (pixbuf, DEST_WIDTH, DEST_HEIGHT, GDK_INTERP_BILINEAR);
|
|
g_object_unref (scaled);
|
|
}
|
|
gettimeofday(&t2, NULL);
|
|
g_print ("Time for INTERP_BILINEAR: %ld msecs\n",
|
|
(t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec) / 1000);
|
|
|
|
scaled = eel_gdk_pixbuf_scale_down (pixbuf, DEST_WIDTH, DEST_HEIGHT);
|
|
gdk_pixbuf_save (scaled, "eel_scaled.png", "png", NULL, NULL);
|
|
g_object_unref (scaled);
|
|
|
|
scaled = gdk_pixbuf_scale_simple (pixbuf, DEST_WIDTH, DEST_HEIGHT, GDK_INTERP_NEAREST);
|
|
gdk_pixbuf_save (scaled, "nearest_scaled.png", "png", NULL, NULL);
|
|
g_object_unref (scaled);
|
|
|
|
scaled = gdk_pixbuf_scale_simple (pixbuf, DEST_WIDTH, DEST_HEIGHT, GDK_INTERP_BILINEAR);
|
|
gdk_pixbuf_save (scaled, "bilinear_scaled.png", "png", NULL, NULL);
|
|
g_object_unref (scaled);
|
|
|
|
return 0;
|
|
}
|