* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "ev-document-misc.h"
+#include <config.h>
+
#include <string.h>
+
#include <gtk/gtk.h>
+#include "ev-document-misc.h"
+
/* Returns a new GdkPixbuf that is suitable for placing in the thumbnail view.
* It is four pixels wider and taller than the source. If source_pixbuf is not
* NULL, then it will fill the return pixbuf with the contents of
{
cairo_surface_t *surface;
cairo_t *cr;
-
- surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
+
+ surface = cairo_image_surface_create (gdk_pixbuf_get_has_alpha (pixbuf) ?
+ CAIRO_FORMAT_ARGB32 : CAIRO_FORMAT_RGB24,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
cr = cairo_create (surface);
p[3] = (has_alpha) ? p[3] : 0xff;
#else
tmp = p[0];
- p[0] = (has_alpha) ? p[3] : 0xff;
- p[3] = p[2];
- p[2] = p[1];
- p[1] = tmp;
+ p[0] = p[1];
+ p[1] = p[2];
+ p[2] = p[3];
+ p[3] = (has_alpha) ? tmp : 0xff;
#endif
p += pixbuf_n_channels;
}
cairo_surface_t *new_surface;
cairo_t *cr;
gint width, height;
- gboolean has_alpha;
- cairo_format_t surface_format;
gint new_width = dest_width;
gint new_height = dest_height;
new_height = dest_width;
}
- surface_format = cairo_image_surface_get_format (surface);
- has_alpha = (surface_format == CAIRO_FORMAT_ARGB32);
-
new_surface = cairo_surface_create_similar (surface,
- has_alpha ?
- CAIRO_CONTENT_COLOR_ALPHA :
- CAIRO_CONTENT_COLOR,
+ cairo_surface_get_content (surface),
new_width, new_height);
cr = cairo_create (new_surface);