[gimp] plug-ins: in file-psd, use normal channel order



commit 2d4de85fe3ea50b67e07dfca05150f2729a8295c
Author: Ell <ell_se yahoo com>
Date:   Sun Apr 26 23:31:50 2020 +0300

    plug-ins: in file-psd, use normal channel order
    
    For some reason we reverse the channel order when loading/saving a
    PSD file.  This doesn't seem to be necessary, and leads to a
    reversed channel order across GIMP/Photoshop.  Simply use the
    normal channel order instead.

 plug-ins/file-psd/psd-load.c | 2 +-
 plug-ins/file-psd/psd-save.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/plug-ins/file-psd/psd-load.c b/plug-ins/file-psd/psd-load.c
index 5955bde6b9..2b5ba3c4df 100644
--- a/plug-ins/file-psd/psd-load.c
+++ b/plug-ins/file-psd/psd-load.c
@@ -2098,7 +2098,7 @@ add_merged_image (GimpImage *image,
           channel = gimp_channel_new (image, alpha_name,
                                       chn_a[cidx].columns, chn_a[cidx].rows,
                                       alpha_opacity, &alpha_rgb);
-          gimp_image_insert_channel (image, channel, NULL, 0);
+          gimp_image_insert_channel (image, channel, NULL, i);
           g_free (alpha_name);
           buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (channel));
           if (alpha_id)
diff --git a/plug-ins/file-psd/psd-save.c b/plug-ins/file-psd/psd-save.c
index 6e37def250..97b5194fe5 100644
--- a/plug-ins/file-psd/psd-save.c
+++ b/plug-ins/file-psd/psd-save.c
@@ -680,7 +680,7 @@ save_resources (FILE      *fd,
       if (gimp_drawable_has_alpha (GIMP_DRAWABLE (PSDImageData.merged_layer)))
         write_string (fd, "Transparency", "channel name");
 
-      for (iter = g_list_last (PSDImageData.lChannels); iter; iter = iter->prev)
+      for (iter = PSDImageData.lChannels; iter; iter = g_list_next (iter))
         {
           char *chName = gimp_item_get_name (iter->data);
           write_string (fd, chName, "channel name");
@@ -743,7 +743,7 @@ save_resources (FILE      *fd,
           write_gchar  (fd, 1,                     "channel mode");
         }
 
-      for (iter = g_list_last (PSDImageData.lChannels); iter; iter = iter->prev)
+      for (iter = PSDImageData.lChannels; iter; iter = g_list_next (iter))
         {
           GimpChannel *channel = iter->data;
           GimpRGB      color;
@@ -1583,7 +1583,7 @@ save_data (FILE      *fd,
   chan = nChansLayer (PSDImageData.baseType,
                       gimp_drawable_has_alpha (GIMP_DRAWABLE (PSDImageData.merged_layer)), 0);
 
-  for (iter = g_list_last (PSDImageData.lChannels), i = PSDImageData.nChannels - 1; iter; iter = iter->prev, 
i--)
+  for (iter = PSDImageData.lChannels; iter; iter = g_list_next (iter))
     {
       IFDBG printf ("\t\tWriting compressed channel data for channel %d\n",
                     i);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]