*/}}
Browse Source

Fix transform pixel count issue

Yiming Wu 2 years ago
parent
commit
3a115994df
1 changed files with 3 additions and 2 deletions
  1. 3 2
      ouroperations.c

+ 3 - 2
ouroperations.c

@@ -982,7 +982,7 @@ int our_LayerImportPNG(OurLayer* l, FILE* fp, void* buf, int InputProfileMode, i
         output_buffer_profile=cmsOpenProfileFromMem(icc, iccsize);
         if(input_buffer_profile && output_buffer_profile){
             cmsTransform = cmsCreateTransform(input_buffer_profile, TYPE_RGBA_16, output_buffer_profile, TYPE_RGBA_16, INTENT_PERCEPTUAL, 0);
-            cmsDoTransform(cmsTransform,Our->ImageBuffer,Our->ImageBuffer,sizeof(uint16_t)*W*H);
+            cmsDoTransform(cmsTransform,Our->ImageBuffer,Our->ImageBuffer,Our->ImageW*Our->ImageH);
         }
     }
 
@@ -996,7 +996,7 @@ cleanup_png_read:
     if(output_buffer_profile) cmsCloseProfile(output_buffer_profile);
     if(cmsTransform) cmsDeleteTransform(cmsTransform);
     if(png_ptr && info_ptr) png_destroy_read_struct(&png_ptr,&info_ptr,0);
-    free(Our->ImageBuffer); Our->ImageBuffer=0;
+    if(Our->ImageBuffer) free(Our->ImageBuffer); Our->ImageBuffer=0;
 
     return result;
 }
@@ -1288,6 +1288,7 @@ int ourmod_ImportLayer(laOperator* a, laEvent* e){
                 laNotifyUsers("our.canvas"); laNotifyUsers("our.canvas.layers"); laMarkMemChanged(Our->CanvasSaverDummyList.pFirst);
                 laRecordDifferences(0,"our.canvas.layers");laRecordDifferences(0,"our.canvas.current_layer");laPushDifferences("New Layer",0);
                 our_LayerRefreshLocal(ol);
+                memFree(ex);
                 fclose(fp);
             }
             return LA_FINISHED;