Advertisement
Guest User

Untitled

a guest
Jul 25th, 2013
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.91 KB | None | 0 0
  1. package com.company.android.util;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5.  
  6. import magick.ColorspaceType;
  7. import magick.ImageInfo;
  8. import magick.MagickImage;
  9. import android.graphics.Bitmap;
  10. import android.graphics.BitmapFactory;
  11. import android.util.Log;
  12.  
  13. import com.nostra13.universalimageloader.cache.disc.DiscCacheAware;
  14. import com.nostra13.universalimageloader.core.ImageLoader;
  15. import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
  16. import com.nostra13.universalimageloader.core.decode.ImageDecodingInfo;
  17.  
  18. public class MyImageDecoder extends BaseImageDecoder {
  19.  
  20.     private ImageInfo info;
  21.     private MagickImage imageCMYK;
  22.  
  23.     @Override
  24.     public Bitmap decode(ImageDecodingInfo decodingInfo)
  25.     {
  26.         Bitmap result = null;
  27.        
  28.         try {
  29.             result = super.decode(decodingInfo);
  30.         } catch (IOException e) {
  31.             // TODO Auto-generated catch block
  32.             e.printStackTrace();
  33.         }
  34.        
  35.         //base decoder may have failed CMYK images - lets try our own and if it fails return null
  36.         if(result == null)
  37.         {
  38.             Log.v("App", "MY DECODER IN USE");
  39.            
  40.             try
  41.             {
  42.                 DiscCacheAware discCache = ImageLoader.getInstance().getDiscCache();
  43.                 File imageFile = discCache.get(decodingInfo.getImageUri());
  44.                
  45.                 File cachedImageFile = ImageLoader.getInstance().getDiscCache().get(decodingInfo.getImageUri());
  46.                 if (!cachedImageFile.exists()) {
  47.                     Log.v("App", "FILE DOES NOT EXIST");
  48.                     return null;
  49.                 }
  50.                
  51.                 //File test = new File(decodingInfo.getImageUri());
  52.                
  53.                 info = new ImageInfo(imageFile.getAbsolutePath());
  54.                 imageCMYK = new MagickImage(info);
  55.                
  56.                 if(imageCMYK.getColorspace() == ColorspaceType.CMYKColorspace)
  57.                 {
  58.                     Log.v("App", "Image is CMYK decode using My decoder");
  59.                    
  60.                     boolean imgConvertStatus = imageCMYK.transformRgbImage(ColorspaceType.CMYKColorspace);                                 
  61.                        
  62.                     if(imgConvertStatus)
  63.                     {
  64.                         Log.v("App", "Image successfully decoded using My decoder");
  65.                         imageCMYK.setFileName(imageFile.getAbsolutePath());
  66.                         imageCMYK.writeImage(info);
  67.                        
  68.                         Log.v("App", "Loading saved image from file system as a Bitmap");
  69.                        
  70.                         BitmapFactory.Options options = new BitmapFactory.Options();
  71.                         options.inPreferredConfig = Bitmap.Config.ARGB_8888;
  72.                        
  73.                         Bitmap bitmap = BitmapFactory.decodeFile(decodingInfo.getImageUri(), decodingInfo.getDecodingOptions());
  74.                        
  75.                         Log.v("App", "Loaded bitmap");
  76.                        
  77.                         result = bitmap;
  78.                     }
  79.                     else
  80.                     {
  81.                         return null;
  82.                     }      
  83.                 }
  84.             }
  85.             catch(Exception e)
  86.             {
  87.                 return null;
  88.             }
  89.         }
  90.        
  91.         return result;
  92.    
  93.     }  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement