[gimp] Bug 748487 - Thumbnails sometimes don't render correctly with *.PSD files
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 748487 - Thumbnails sometimes don't render correctly with *.PSD files
- Date: Sun, 26 Apr 2015 17:32:38 +0000 (UTC)
commit 3d3f1d6855c1693754c80a49c8628ac861650226
Author: Michael Natterer <mitch gimp org>
Date: Sun Apr 26 13:31:01 2015 -0400
Bug 748487 - Thumbnails sometimes don't render correctly with *.PSD files
Using the right Babl format (JPEG previews don't have an alpha
channel), and fixing the main scanline loading loop (which was totally
busted) make the PSD previews look like images.
plug-ins/file-psd/psd-image-res-load.c | 39 +++++++++++++++++--------------
1 files changed, 21 insertions(+), 18 deletions(-)
---
diff --git a/plug-ins/file-psd/psd-image-res-load.c b/plug-ins/file-psd/psd-image-res-load.c
index 645dd70..4acc37a 100644
--- a/plug-ins/file-psd/psd-image-res-load.c
+++ b/plug-ins/file-psd/psd-image-res-load.c
@@ -1035,7 +1035,7 @@ load_resource_1033 (const PSDimageres *res_a,
cinfo.output_height,
GIMP_RGB_IMAGE, 100, GIMP_NORMAL_MODE);
buffer = gimp_drawable_get_buffer (layer_id);
- format = babl_format ("R'G'B'A u8");
+ format = babl_format ("R'G'B' u8");
/* Step 6: while (scan lines remain to be read) */
/* jpeg_read_scanlines(...); */
@@ -1043,28 +1043,31 @@ load_resource_1033 (const PSDimageres *res_a,
{
jpeg_read_scanlines (&cinfo,
(JSAMPARRAY) &rowbuf[cinfo.output_scanline], 1);
+ }
- if (res_a->id == PSD_THUMB_RES) /* Order is BGR for resource 1033 */
- {
- guchar *dst = rgb_buf;
- guchar *src = buf;
+ if (res_a->id == PSD_THUMB_RES) /* Order is BGR for resource 1033 */
+ {
+ guchar *dst = rgb_buf;
+ guchar *src = buf;
- for (i = 0; i < gegl_buffer_get_width (buffer) * gegl_buffer_get_height (buffer); ++i)
- {
- guchar r, g, b;
-
- r = *(src++);
- g = *(src++);
- b = *(src++);
- *(dst++) = b;
- *(dst++) = g;
- *(dst++) = r;
- }
+ for (i = 0; i < gegl_buffer_get_width (buffer) * gegl_buffer_get_height (buffer); ++i)
+ {
+ guchar r, g, b;
+
+ r = *(src++);
+ g = *(src++);
+ b = *(src++);
+ *(dst++) = b;
+ *(dst++) = g;
+ *(dst++) = r;
}
- gegl_buffer_set (buffer, GEGL_RECTANGLE (0, 0, gegl_buffer_get_width (buffer), gegl_buffer_get_height
(buffer)),
- 0, format, rgb_buf ? rgb_buf : buf, GEGL_AUTO_ROWSTRIDE);
}
+ gegl_buffer_set (buffer, GEGL_RECTANGLE (0, 0,
+ gegl_buffer_get_width (buffer),
+ gegl_buffer_get_height (buffer)),
+ 0, format, rgb_buf ? rgb_buf : buf, GEGL_AUTO_ROWSTRIDE);
+
/* Step 7: Finish decompression */
jpeg_finish_decompress (&cinfo);
/* We can ignore the return value since suspension is not possible
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]