Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/imlib2

Dir     : e17/libs/imlib2/loaders


Modified Files:
        loader_tiff.c 


Log Message:


tiff compression patch :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/imlib2/loaders/loader_tiff.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- loader_tiff.c       10 Aug 2001 08:35:05 -0000      1.9
+++ loader_tiff.c       4 Feb 2003 22:06:03 -0000       1.10
@@ -286,8 +286,12 @@
    uint8               r, g, b, a;
    int                 has_alpha = IMAGE_HAS_ALPHA(im);
    int                 i = 0, pl = 0;
-   char                pper = 0;
-   
+   char                        pper = 0;
+   /* By default uses patent-free use COMPRESSION_DEFLATE,
+      another lossless compression technique */
+   ImlibImageTag       *tag;
+   int                 compression_type = COMPRESSION_DEFLATE;
+
    if (!im->data)
       return 0;
    
@@ -305,7 +309,45 @@
    TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
    TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
    TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, RESUNIT_NONE);
-   TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW);
+
+   /* look for tags attached to image to get extra parameters like quality */
+   /* settings etc. - this is the "api" to hint for extra information for */
+   /* saver modules */
+
+   /* compression */
+   tag = __imlib_GetTag(im, "compression_type");
+   if (tag) {
+       compression_type = tag->val;
+       switch (compression_type) {
+          case COMPRESSION_NONE: break;
+          case COMPRESSION_CCITTRLE: break;
+          case COMPRESSION_CCITTFAX3: break;     
+          case COMPRESSION_CCITTFAX4: break;     
+          case COMPRESSION_LZW: break;           
+          case COMPRESSION_OJPEG: break;         
+          case COMPRESSION_JPEG: break;          
+          case COMPRESSION_NEXT: break;          
+          case COMPRESSION_CCITTRLEW: break;     
+          case COMPRESSION_PACKBITS: break;      
+          case COMPRESSION_THUNDERSCAN: break;   
+          case COMPRESSION_IT8CTPAD: break;      
+          case COMPRESSION_IT8LW: break;         
+          case COMPRESSION_IT8MP: break;         
+          case COMPRESSION_IT8BL: break;         
+          case COMPRESSION_PIXARFILM: break;     
+          case COMPRESSION_PIXARLOG: break;      
+          case COMPRESSION_DEFLATE: break;       
+          case COMPRESSION_ADOBE_DEFLATE: break; 
+          case COMPRESSION_DCS: break;           
+          case COMPRESSION_JBIG: break;          
+          case COMPRESSION_SGILOG: break;        
+          case COMPRESSION_SGILOG24: break;
+          default: compression_type = COMPRESSION_DEFLATE;
+       }
+
+   }
+   TIFFSetField(tif, TIFFTAG_COMPRESSION, compression_type);
+
    if (has_alpha)
      {
        TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 4);




-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to