LOMO其实是一个早期的苏联的相机厂。五六十年代产了一些廉价的比较实用的相机。后来苏联解体之后这个相机厂就不产了。九十年代的时候有一个叫杰克的哥们,去货摊上找到了一个全新的没开封的这个LOMO相机,照了一系列的照片就是这个效果,四周暗,中间亮,然后就给它发到BBS上。淘宝上也有卖的,20或者30块钱,就是一个塑料盒子然后上面一个镜头。最主要它是用胶卷,可能这个胶卷比这个相机还贵。
也没什么对焦之类的,反正就把人放里面按一下按钮就完事了。这也就是一个定焦的镜头。有四个镜头的,四个镜头的就分别曝光,就可以去照出一组动图。一顿饭钱就这么一个相机。
因为当时LOMO相机生产的工艺不太好,镜头的质量比较差,所以它就有四周暗中间亮的效果。怎么去实现LOMO的效果。
首先要反编译美图秀秀的Java代码。
由于这个版本比较早,那个时候美图秀秀的工作室也没有对它进行反编译。
EditCutActivity 编辑剪切的Activity.EditBrightActivity.
想看它图片特效是怎么处理的?有一个ImageProcess图片处理的类.图片处理的类封装了很多静态方法.
package com.mt.mtxx.image; import android.content.Context; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory.Options; import android.graphics.Canvas; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.media.ExifInterface; import com.mt.mtxx.mtxx.MTDebug; import com.mt.mtxx.mtxx.MyData; import java.io.IOException; import java.io.InputStream; public class ImageProcess { private static float[] DELTA_INDEX = { 0.0F, 0.01F, 0.02F, 0.04F, 0.05F, 0.06F, 0.07F, 0.08F, 0.1F, 0.11F, 0.12F, 0.14F, 0.15F, 0.16F, 0.17F, 0.18F, 0.2F, 0.21F, 0.22F, 0.24F, 0.25F, 0.27F, 0.28F, 0.3F, 0.32F, 0.34F, 0.36F, 0.38F, 0.4F, 0.42F, 0.44F, 0.46F, 0.48F, 0.5F, 0.53F, 0.56F, 0.59F, 0.62F, 0.65F, 0.68F, 0.71F, 0.74F, 0.77F, 0.8F, 0.83F, 0.86F, 0.89F, 0.92F, 0.95F, 0.98F, 1.0F, 1.06F, 1.12F, 1.18F, 1.24F, 1.3F, 1.36F, 1.42F, 1.48F, 1.54F, 1.6F, 1.66F, 1.72F, 1.78F, 1.84F, 1.9F, 1.96F, 2.0F, 2.12F, 2.25F, 2.37F, 2.5F, 2.62F, 2.75F, 2.87F, 3.0F, 3.2F, 3.4F, 3.6F, 3.8F, 4.0F, 4.3F, 4.7F, 4.9F, 5.0F, 5.5F, 6.0F, 6.5F, 6.8F, 7.0F, 7.3F, 7.5F, 7.8F, 8.0F, 8.4F, 8.7F, 9.0F, 9.4F, 9.6F, 9.8F, 10.0F }; private static JNI jni = new JNI(); public static Bitmap AutoWhiteBalance(Bitmap paramBitmap)//自动白平衡 好一点的相机都有这样的功能 设置一个白平衡 先找准这个白色的 然后其他的颜色才能跟着一起准 当你从一个环境进到另外一个环境 比如说白色光灯环境 绿色光灯环境 可能这个白色都得重新调一调 这就是自动白平衡 { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis();//获得了当前的时间. int i = paramBitmap.getWidth();//获取Bitmap的宽度 int j = paramBitmap.getHeight();//获取Bitmap的高度 byte[] arrayOfByte = bitmap2ByteARGB(paramBitmap);//拿到了一个byte类型的数组 jni.AutoWhiteBalance(arrayOfByte, i, j); localBitmap = bytesARGB2Bimap(arrayOfByte, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("AutoWhiteBalance time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap BackWeak(int[] paramArrayOfInt1, int[] paramArrayOfInt2, int paramInt1, int paramInt2, int paramInt3, int paramInt4, byte[] paramArrayOfByte, int paramInt5, int paramInt6) { try { MTDebug.Print("BackWeak width=" + paramInt1 + " height=" + paramInt2 + " total=" + paramInt1 * paramInt2 + " nOutsideRound=" + paramInt6); if (paramArrayOfInt1.length < paramInt1 * paramInt2) { MTDebug.PrintError("[BackWeak] DstImage.length=" + paramArrayOfInt1.length); return null; } if (paramArrayOfInt2.length < paramInt1 * paramInt2) { StringBuilder localStringBuilder = new StringBuilder("[BackWeak] SrcImage.length="); MTDebug.PrintError(paramArrayOfInt2.length); return null; } int i = 1 + paramInt6 * 2; if (paramArrayOfByte.length < i * i) { MTDebug.PrintError("[BackWeak] alphaRect.length=" + paramArrayOfByte.length); return null; MTDebug.Print("[Error][BackWeak] BackWeak"); return null; jni.BackWeakOne(paramArrayOfInt1, paramArrayOfInt2, paramInt1, paramInt2, paramInt3, paramInt4, paramArrayOfByte, paramInt5, paramInt6); Bitmap localBitmap2 = intARGB2Bimap(paramArrayOfInt1, paramInt1, paramInt2); localBitmap1 = localBitmap2; return localBitmap1; } } catch (Exception localException) { while (true) { localException.printStackTrace(); Bitmap localBitmap1 = null; continue; if ((paramArrayOfInt1 == null) || (paramArrayOfInt2 == null)) continue; if (paramArrayOfByte != null) continue; } } } public static Bitmap BackWeak2(byte[] paramArrayOfByte1, int paramInt1, int paramInt2, int paramInt3, int paramInt4, byte[] paramArrayOfByte2, int paramInt5, int paramInt6) { try { if (paramArrayOfByte1.length < paramInt1 * paramInt2) { MTDebug.Print("[Error][BackWeakLine] SrcImage.length=" + paramArrayOfByte1.length); return null; } int i = 1 + paramInt6 * 2; if (paramArrayOfByte2.length < i * i) { MTDebug.Print("[Error][BackWeakLine] alphaRect.length=" + paramArrayOfByte2.length + " nOutsideRound=" + paramInt6); return null; } jni.BackWeak2(paramArrayOfByte1, paramInt1, paramInt2, paramInt3, paramInt4, paramArrayOfByte2, paramInt5, paramInt6); Bitmap localBitmap2 = bytesARGB2Bimap(paramArrayOfByte1, paramInt1, paramInt2); localBitmap1 = localBitmap2; return localBitmap1; } catch (Exception localException) { while (true) { localException.printStackTrace(); Bitmap localBitmap1 = null; } } } public static Bitmap BackWeakLine(int[] paramArrayOfInt1, int[] paramArrayOfInt2, int paramInt1, int paramInt2, int[] paramArrayOfInt3, int[] paramArrayOfInt4, float paramFloat, int paramInt3, int paramInt4) { try { if (paramArrayOfInt1.length < paramInt1 * paramInt2) { MTDebug.PrintError("[Error][BackWeakLine] DstImage.length=" + paramArrayOfInt1.length); return null; } if (paramArrayOfInt2.length < paramInt1 * paramInt2) { MTDebug.PrintError("[Error][BackWeakLine] SrcImage.length=" + paramArrayOfInt2.length); return null; } if (paramArrayOfInt3.length != 8) { MTDebug.PrintError("[Error][BackWeakLine] x.length=" + paramArrayOfInt3.length); return null; } if (paramArrayOfInt4.length != 8) { MTDebug.PrintError("[Error][BackWeakLine] y.length=" + paramArrayOfInt4.length); return null; MTDebug.PrintError("[Error] BackWeakLine"); return null; jni.BackWeakLine(paramArrayOfInt1, paramArrayOfInt2, paramInt1, paramInt2, paramArrayOfInt3, paramArrayOfInt4, paramFloat, paramInt3, paramInt4); Bitmap localBitmap2 = intARGB2Bimap(paramArrayOfInt1, paramInt1, paramInt2); localBitmap1 = localBitmap2; return localBitmap1; } } catch (Exception localException) { while (true) { localException.printStackTrace(); Bitmap localBitmap1 = null; continue; if ((paramArrayOfInt1 == null) || (paramArrayOfInt2 == null) || (paramArrayOfInt3 == null)) continue; if (paramArrayOfInt4 != null) continue; } } } public static Bitmap Bmp565ToBmp888(Bitmap paramBitmap, boolean paramBoolean) { try { if (paramBitmap.getConfig() == Bitmap.Config.RGB_565) { Bitmap localBitmap2 = paramBitmap.copy(Bitmap.Config.ARGB_8888, true); localBitmap1 = localBitmap2; return localBitmap1; } return paramBitmap; } catch (Exception localException) { while (true) { MTDebug.Print("FittingWindow " + localException.toString()); localException.printStackTrace(); Bitmap localBitmap1 = null; } } } public static Bitmap Clone(Bitmap paramBitmap) { try { Bitmap localBitmap = paramBitmap.copy(MyData.mConfig, true); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static Bitmap FaceBeauty(Bitmap paramBitmap, int paramInt, boolean paramBoolean) { try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); if (paramBoolean) paramBitmap.recycle(); jni.FaceBeauty(arrayOfInt, i, j, paramInt); Bitmap localBitmap = intARGB2Bimap(arrayOfInt, i, j); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static void FaceBeautyRelease() { try { jni.FaceBeautyRelease(); return; } catch (Exception localException) { localException.printStackTrace(); } } public static Bitmap FittingWindow(Bitmap paramBitmap, int paramInt1, int paramInt2, boolean paramBoolean) { Object localObject = null; while (true) { int m; int k; try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); if (i * paramInt2 <= j * paramInt1) continue; m = paramInt1; k = j * paramInt1 / i; float f1 = m / i; MTDebug.Print("scale=" + f1); float f2 = (int)(f1 * 1000.0F) / 1000.0F; Matrix localMatrix = new Matrix(); localMatrix.reset(); localMatrix.preScale(f2, f2); MTDebug.Print("srcW=" + i + " srcH=" + j + " scale=" + f2 + " w=" + paramInt1 + " h=" + paramInt2); if (paramBitmap == null) { MTDebug.Print("2aMTXX src == null"); if (i != m) break label318; localObject = null; if (j != k) break label318; localObject = paramBitmap.copy(paramBitmap.getConfig(), true); MTDebug.Print("FittingWindow copy"); if (!paramBoolean) break; paramBitmap.recycle(); return localObject; k = paramInt2; m = i * paramInt2 / j; f1 = k / j; MTDebug.Print("scale=" + f1); continue; } } catch (Exception localException) { MTDebug.Print("FittingWindow " + localException.toString()); localException.printStackTrace(); return localObject; } if (!paramBitmap.isRecycled()) continue; MTDebug.Print("3aMTXX src.isRecycled()"); continue; label318: Bitmap localBitmap = createScaledBitmap(paramBitmap, m, k, paramBitmap.getConfig()); localObject = localBitmap; } return (Bitmap)localObject; } public static Bitmap FittingWindow888(Bitmap paramBitmap, int paramInt1, int paramInt2, boolean paramBoolean) { Object localObject = null; while (true) { int i; int j; try { i = paramBitmap.getWidth(); j = paramBitmap.getHeight(); if (i * paramInt2 <= j * paramInt1) continue; (j * paramInt1 / i); float f1 = paramInt1 / i; MTDebug.Print("scale=" + f1); float f2 = (int)(f1 * 1000.0F) / 1000.0F; Matrix localMatrix = new Matrix(); localMatrix.reset(); localMatrix.preScale(f2, f2); MTDebug.Print("srcW=" + i + " srcH=" + j + " scale=" + f2 + " w=" + paramInt1 + " h=" + paramInt2); if (paramBitmap == null) { MTDebug.Print("2aMTXX src == null"); boolean bool = f2 < 1.0F; localObject = null; if (bool) break label304; localObject = paramBitmap.copy(Bitmap.Config.ARGB_8888, true); MTDebug.Print("FittingWindow copy"); if (!paramBoolean) break; paramBitmap.recycle(); return localObject; (i * paramInt2 / j); f1 = paramInt2 / j; MTDebug.Print("scale=" + f1); continue; } } catch (Exception localException) { MTDebug.Print("FittingWindow " + localException.toString()); localException.printStackTrace(); return localObject; } if (!paramBitmap.isRecycled()) continue; MTDebug.Print("3aMTXX src.isRecycled()"); continue; label304: Bitmap localBitmap = createScaledBitmap(paramBitmap, i, j, Bitmap.Config.ARGB_8888); localObject = localBitmap; } return (Bitmap)localObject; } public static Bitmap FittingWindowSave(Bitmap paramBitmap, int paramInt1, int paramInt2, boolean paramBoolean) { Object localObject = null; try { MTDebug.Print("FittingWindowSave w=" + paramInt1 + " h=" + paramInt2 + " srcW=" + paramBitmap.getWidth() + " srcH=" + paramBitmap.getHeight()); int i = paramBitmap.getWidth(); localObject = null; if ((i <= paramInt1) && (paramBitmap.getHeight() <= paramInt2)) return paramBitmap; int j = paramBitmap.getWidth(); int k = paramBitmap.getHeight(); int n; int m; if (j * paramInt2 > k * paramInt1) { n = paramInt1; m = k * paramInt1 / j; (n / j); if (j != n) break label232; localObject = null; if (k != m) break label232; localObject = paramBitmap.copy(MyData.mConfig, true); MTDebug.Print("FittingWindowSave copy"); } while (true) { if (paramBoolean) paramBitmap.recycle(); MTDebug.Print("w=" + ((Bitmap)localObject).getWidth() + " h=" + ((Bitmap)localObject).getHeight()); break label263; m = paramInt2; n = j * paramInt2 / k; (m / k); break; label232: Bitmap localBitmap = createScaledBitmap(paramBitmap, n, m, paramBitmap.getConfig()); localObject = localBitmap; } } catch (Exception localException) { localException.printStackTrace(); } label263: return (Bitmap)localObject; } // ERROR // public static Bitmap FrameColorful(Bitmap paramBitmap, String paramString, int paramInt, Context paramContext, boolean paramBoolean) { // Byte code: // 0: invokestatic 128 java/lang/System:currentTimeMillis ()J // 3: lstore 8 // 5: aload_0 // 6: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 9: istore 10 // 11: aload_0 // 12: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 15: istore 11 // 17: aload_0 // 18: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 21: astore 12 // 23: iload 4 // 25: ifeq +7 -> 32 // 28: aload_0 // 29: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 32: aload_1 // 33: aload_3 // 34: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 37: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 40: astore 13 // 42: iload 10 // 44: iload 11 // 46: if_icmple +168 -> 214 // 49: iload_2 // 50: iconst_1 // 51: iand // 52: iconst_1 // 53: if_icmpne +161 -> 214 // 56: aload 13 // 58: iconst_1 // 59: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 62: iload 10 // 64: iload 11 // 66: iconst_1 // 67: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 70: astore 15 // 72: aload 15 // 74: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 77: astore 16 // 79: new 150 java/lang/StringBuilder // 82: dup // 83: ldc_w 343 // 86: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 89: aload 12 // 91: arraylength // 92: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 95: ldc_w 345 // 98: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 101: aload 16 // 103: arraylength // 104: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 107: ldc_w 297 // 110: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 113: iload 10 // 115: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 118: ldc 180 // 120: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 123: iload 11 // 125: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 128: ldc_w 347 // 131: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 134: iload_2 // 135: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 138: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 141: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 144: aload 15 // 146: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 149: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 152: aload 12 // 154: aload 16 // 156: iload 10 // 158: iload 11 // 160: iload_2 // 161: invokevirtual 351 com/mt/mtxx/image/JNI:FrameXCBK ([I[IIII)V // 164: invokestatic 354 java/lang/System:gc ()V // 167: aload 12 // 169: iload 10 // 171: iload 11 // 173: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 176: astore 17 // 178: aload 17 // 180: astore 7 // 182: invokestatic 128 java/lang/System:currentTimeMillis ()J // 185: lload 8 // 187: lsub // 188: lstore 18 // 190: new 150 java/lang/StringBuilder // 193: dup // 194: ldc_w 356 // 197: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 200: lload 18 // 202: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 205: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 208: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 211: aload 7 // 213: areturn // 214: aload 13 // 216: iload 10 // 218: iload 11 // 220: iconst_1 // 221: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 224: astore 14 // 226: aload 14 // 228: astore 15 // 230: goto -158 -> 72 // 233: astore 5 // 235: aload 5 // 237: astore 6 // 239: aconst_null // 240: astore 7 // 242: aload 6 // 244: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 247: aload 7 // 249: areturn // 250: astore 6 // 252: goto -10 -> 242 // // Exception table: // from to target type // 0 23 233 java/lang/Exception // 28 32 233 java/lang/Exception // 32 42 233 java/lang/Exception // 56 72 233 java/lang/Exception // 72 178 233 java/lang/Exception // 214 226 233 java/lang/Exception // 182 211 250 java/lang/Exception } public static Bitmap GaussIIRBlurBrush(Bitmap paramBitmap, int paramInt1, int paramInt2) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); jni.GaussIIRBlurBrush(arrayOfInt, paramInt1, paramInt2, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("GaussIIRBlurBrush time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static int[] GaussIIRBlurBrush2(Bitmap paramBitmap, int paramInt1, int paramInt2) { int[] arrayOfInt = (int[])null; try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); arrayOfInt = bitmap2IntARGB(paramBitmap); jni.GaussIIRBlurBrush(arrayOfInt, paramInt1, paramInt2, i, j); return arrayOfInt; } catch (Exception localException) { localException.printStackTrace(); } return arrayOfInt; } public static Bitmap GaussIIRBlurImage(Bitmap paramBitmap, int paramInt1, int paramInt2) { try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); byte[] arrayOfByte = bitmap2ByteARGB(paramBitmap); jni.GaussIIRBlurImage(arrayOfByte, paramInt1, paramInt2, i, j); Bitmap localBitmap = bytesARGB2Bimap(arrayOfByte, i, j); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static Bitmap Grayscale(Bitmap paramBitmap) { try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); byte[] arrayOfByte = bitmap2ByteARGB(paramBitmap); jni.Grayscale(arrayOfByte, i, j); Bitmap localBitmap = bytesARGB2Bimap(arrayOfByte, i, j); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static Bitmap LoadAssertsPic(String paramString, AssetManager paramAssetManager) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); MTDebug.Print("LoadAssertsPic path=" + paramString); InputStream localInputStream = paramAssetManager.open(paramString); BitmapFactory.Options localOptions = new BitmapFactory.Options(); localOptions.inDither = false; localOptions.inPreferredConfig = MyData.mConfig; localBitmap = BitmapFactory.decodeStream(localInputStream, null, localOptions); localInputStream.close(); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("LoadAssertsPic time=" + l2); return localBitmap; } catch (IOException localIOException) { localIOException.printStackTrace(); } return localBitmap; } public static Bitmap MoveBmpToMiddle(Bitmap paramBitmap, int paramInt1, int paramInt2, boolean paramBoolean) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramInt1, paramInt2, paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap); int i = (paramInt1 - paramBitmap.getWidth()) / 2; int j = (paramInt2 - paramBitmap.getHeight()) / 2; Paint localPaint = new Paint(); localPaint.setAntiAlias(true); localCanvas.drawBitmap(paramBitmap, i, j, localPaint); if (paramBoolean) paramBitmap.recycle(); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap OpenPic(String paramString) { BitmapFactory.Options localOptions = new BitmapFactory.Options(); localOptions.inDither = false; return BitmapFactory.decodeFile(paramString, localOptions); } public static Bitmap OpenPic(String paramString, int paramInt1, int paramInt2) { BitmapFactory.Options localOptions = new BitmapFactory.Options(); localOptions.outWidth = paramInt1; localOptions.outHeight = paramInt2; return BitmapFactory.decodeFile(paramString, localOptions); } // ERROR // public static Bitmap PreviewBigPic(String paramString, Bitmap.Config paramConfig) { // Byte code: // 0: new 449 java/io/File // 3: dup // 4: aload_0 // 5: invokespecial 450 java/io/File:<init> (Ljava/lang/String;)V // 8: astore_2 // 9: ldc_w 452 // 12: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 15: pop2 // 16: new 386 android/graphics/BitmapFactory$Options // 19: dup // 20: invokespecial 387 android/graphics/BitmapFactory$Options:<init> ()V // 23: astore 6 // 25: aload 6 // 27: iconst_1 // 28: putfield 459 android/graphics/BitmapFactory$Options:inJustDecodeBounds Z // 31: new 461 java/io/FileInputStream // 34: dup // 35: aload_2 // 36: invokespecial 464 java/io/FileInputStream:<init> (Ljava/io/File;)V // 39: astore 7 // 41: aload 7 // 43: aconst_null // 44: aload 6 // 46: invokestatic 400 android/graphics/BitmapFactory:decodeStream (Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; // 49: pop // 50: aload 7 // 52: invokevirtual 465 java/io/FileInputStream:close ()V // 55: aload 6 // 57: getfield 440 android/graphics/BitmapFactory$Options:outWidth I // 60: istore 10 // 62: aload 6 // 64: getfield 443 android/graphics/BitmapFactory$Options:outHeight I // 67: istore 11 // 69: new 150 java/lang/StringBuilder // 72: dup // 73: ldc_w 467 // 76: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 79: iload 10 // 81: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 84: ldc_w 469 // 87: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 90: iload 11 // 92: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 95: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 98: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 101: iconst_1 // 102: istore 12 // 104: iload 10 // 106: sipush 1200 // 109: if_icmpge +234 -> 343 // 112: iload 11 // 114: sipush 1200 // 117: if_icmpge +226 -> 343 // 120: new 150 java/lang/StringBuilder // 123: dup // 124: ldc_w 471 // 127: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 130: iload 12 // 132: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 135: ldc_w 473 // 138: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 141: iload 10 // 143: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 146: ldc_w 469 // 149: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 152: iload 11 // 154: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 157: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 160: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 163: ldc_w 475 // 166: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 169: pop2 // 170: iload 12 // 172: iconst_1 // 173: if_icmple +201 -> 374 // 176: new 386 android/graphics/BitmapFactory$Options // 179: dup // 180: invokespecial 387 android/graphics/BitmapFactory$Options:<init> ()V // 183: astore 15 // 185: aload 15 // 187: iload 12 // 189: putfield 478 android/graphics/BitmapFactory$Options:inSampleSize I // 192: aload 15 // 194: iconst_0 // 195: putfield 459 android/graphics/BitmapFactory$Options:inJustDecodeBounds Z // 198: aload 15 // 200: iconst_0 // 201: putfield 391 android/graphics/BitmapFactory$Options:inDither Z // 204: aload 15 // 206: aload_1 // 207: putfield 394 android/graphics/BitmapFactory$Options:inPreferredConfig Landroid/graphics/Bitmap$Config; // 210: new 150 java/lang/StringBuilder // 213: dup // 214: ldc_w 480 // 217: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 220: iload 12 // 222: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 225: ldc_w 473 // 228: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 231: iload 10 // 233: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 236: ldc_w 469 // 239: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 242: iload 11 // 244: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 247: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 250: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 253: new 461 java/io/FileInputStream // 256: dup // 257: aload_2 // 258: invokespecial 464 java/io/FileInputStream:<init> (Ljava/io/File;)V // 261: astore 16 // 263: aload 16 // 265: aconst_null // 266: aload 15 // 268: invokestatic 400 android/graphics/BitmapFactory:decodeStream (Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; // 271: astore 17 // 273: new 150 java/lang/StringBuilder // 276: dup // 277: ldc_w 482 // 280: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 283: aload 17 // 285: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 288: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 291: ldc_w 299 // 294: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 297: aload 17 // 299: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 302: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 305: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 308: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 311: ldc_w 484 // 314: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 317: pop2 // 318: aload 16 // 320: invokevirtual 465 java/io/FileInputStream:close ()V // 323: aload 17 // 325: areturn // 326: astore 9 // 328: aload 9 // 330: invokevirtual 408 java/io/IOException:printStackTrace ()V // 333: goto -278 -> 55 // 336: astore_3 // 337: aload_3 // 338: invokevirtual 485 java/io/FileNotFoundException:printStackTrace ()V // 341: aconst_null // 342: areturn // 343: iload 10 // 345: iconst_2 // 346: idiv // 347: istore 10 // 349: iload 11 // 351: iconst_2 // 352: idiv // 353: istore 11 // 355: iload 12 // 357: iconst_2 // 358: imul // 359: istore 12 // 361: goto -257 -> 104 // 364: astore 20 // 366: aload 20 // 368: invokevirtual 408 java/io/IOException:printStackTrace ()V // 371: aload 17 // 373: areturn // 374: new 150 java/lang/StringBuilder // 377: dup // 378: ldc_w 487 // 381: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 384: iload 12 // 386: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 389: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 392: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 395: new 386 android/graphics/BitmapFactory$Options // 398: dup // 399: invokespecial 387 android/graphics/BitmapFactory$Options:<init> ()V // 402: astore 21 // 404: aload 21 // 406: iconst_0 // 407: putfield 391 android/graphics/BitmapFactory$Options:inDither Z // 410: aload 21 // 412: aload_1 // 413: putfield 394 android/graphics/BitmapFactory$Options:inPreferredConfig Landroid/graphics/Bitmap$Config; // 416: aload_0 // 417: aload 21 // 419: invokestatic 435 android/graphics/BitmapFactory:decodeFile (Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; // 422: astore 22 // 424: aload 22 // 426: areturn // // Exception table: // from to target type // 50 55 326 java/io/IOException // 9 50 336 java/io/FileNotFoundException // 50 55 336 java/io/FileNotFoundException // 55 101 336 java/io/FileNotFoundException // 120 170 336 java/io/FileNotFoundException // 176 318 336 java/io/FileNotFoundException // 318 323 336 java/io/FileNotFoundException // 328 333 336 java/io/FileNotFoundException // 343 355 336 java/io/FileNotFoundException // 366 371 336 java/io/FileNotFoundException // 374 424 336 java/io/FileNotFoundException // 318 323 364 java/io/IOException } public static Bitmap Resample(Bitmap paramBitmap, float paramFloat) { try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int k = (int)(paramFloat * i); int m = (int)(paramFloat * j); byte[] arrayOfByte1 = bitmap2ByteARGB(paramBitmap); byte[] arrayOfByte2 = new byte[4 * (k * m)]; jni.Resample(arrayOfByte2, k, m, 0, arrayOfByte1, i, j); Bitmap localBitmap = bytesARGB2Bimap(arrayOfByte2, k, m); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static byte[] SetBackWeakRadius(byte[] paramArrayOfByte, int paramInt1, int paramInt2) { int i = 1 + paramInt2 * 2; try { if (paramArrayOfByte.length < i * i) { MTDebug.PrintError("[Error][SetBackWeakRadius] alphaRect.length=" + paramArrayOfByte.length + "nOutsideRound=" + paramInt2); return null; } jni.SetBackWeakRadius(paramArrayOfByte, paramInt1, paramInt2); return paramArrayOfByte; } catch (Exception localException) { while (true) localException.printStackTrace(); } } public static Bitmap Sharp(Bitmap paramBitmap, float paramFloat1, float paramFloat2, boolean paramBoolean) { try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); if (paramBoolean) paramBitmap.recycle(); jni.Sharp(arrayOfInt, i, j, paramFloat1, paramFloat2); Bitmap localBitmap = intARGB2Bimap(arrayOfInt, i, j); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static Bitmap SharpPreview(Bitmap paramBitmap, float paramFloat1, float paramFloat2) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); jni.SharpPreview(arrayOfInt, i, j, paramFloat1, paramFloat2); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("SharpPreview time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static void SharpPreviewRelease() { try { jni.SharpPreviewRelease(); return; } catch (Exception localException) { localException.printStackTrace(); } } public static Bitmap SkinWhite(Bitmap paramBitmap, int paramInt, boolean paramBoolean) { try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); if (paramBoolean) paramBitmap.recycle(); jni.SkinWhite(arrayOfInt, i, j, paramInt); Bitmap localBitmap = intARGB2Bimap(arrayOfInt, i, j); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static Bitmap StyleBaoColor(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleBaoColor(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleBaoColor time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap StyleBrightRed(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { Bitmap localBitmap1 = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt1 = bitmap2IntARGB(paramBitmap); localBitmap1 = null; if (paramBoolean) paramBitmap.recycle(); Bitmap localBitmap2 = LoadAssertsPic("style/mtxx_lianghong_001.jpg", paramContext.getAssets()); Bitmap localBitmap3 = resize(localBitmap2, i, j, false); localBitmap2.recycle(); int[] arrayOfInt2 = bitmap2IntARGB(localBitmap3); localBitmap3.recycle(); jni.StyleLomoBrightRed(arrayOfInt1, arrayOfInt2, i, j); ((int[])null); System.gc(); localBitmap1 = intARGB2Bimap(arrayOfInt1, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleBrightRed time=" + l2); return localBitmap1; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap1; } public static Bitmap StyleCinnamon(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleCinnamon(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleCinnamon time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap StyleClassic(Bitmap paramBitmap, float paramFloat, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); MTDebug.Print("ta d0=" + arrayOfInt[0] + " d1=" + arrayOfInt[1]); jni.StyleClassic(arrayOfInt, i, j, paramFloat); localBitmap = intARGB2Bimap(arrayOfInt, i, j); ((int[])null); System.gc(); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleClassic time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap StyleClassicStudio(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleClassicStudio(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleClassicStudio time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } // ERROR // public static Bitmap StyleE(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { // Byte code: // 0: invokestatic 128 java/lang/System:currentTimeMillis ()J // 3: lstore 6 // 5: aload_0 // 6: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 9: istore 8 // 11: aload_0 // 12: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 15: istore 9 // 17: ldc_w 557 // 20: aload_1 // 21: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 24: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 27: astore 10 // 29: iload 8 // 31: iload 9 // 33: if_icmple +177 -> 210 // 36: aload 10 // 38: iconst_1 // 39: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 42: iload 8 // 44: iload 9 // 46: iconst_1 // 47: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 50: astore 11 // 52: aload_0 // 53: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 56: astore 12 // 58: iload_2 // 59: ifeq +7 -> 66 // 62: aload_0 // 63: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 66: aload 11 // 68: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 71: astore 13 // 73: aload 11 // 75: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 78: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 81: aload 12 // 83: aload 13 // 85: iload 8 // 87: iload 9 // 89: invokevirtual 560 com/mt/mtxx/image/JNI:StyleEP1 ([I[III)V // 92: aconst_null // 93: checkcast 367 [I // 96: pop // 97: ldc_w 562 // 100: aload_1 // 101: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 104: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 107: astore 15 // 109: iload 8 // 111: iload 9 // 113: if_icmple +112 -> 225 // 116: aload 15 // 118: iconst_1 // 119: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 122: iload 8 // 124: iload 9 // 126: iconst_1 // 127: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 130: astore 16 // 132: aload 16 // 134: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 137: astore 17 // 139: aload 16 // 141: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 144: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 147: aload 12 // 149: aload 17 // 151: iload 8 // 153: iload 9 // 155: invokevirtual 565 com/mt/mtxx/image/JNI:StyleEP2 ([I[III)V // 158: aconst_null // 159: checkcast 367 [I // 162: pop // 163: aload 12 // 165: iload 8 // 167: iload 9 // 169: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 172: astore 19 // 174: aload 19 // 176: astore 5 // 178: invokestatic 128 java/lang/System:currentTimeMillis ()J // 181: lload 6 // 183: lsub // 184: lstore 20 // 186: new 150 java/lang/StringBuilder // 189: dup // 190: ldc_w 567 // 193: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 196: lload 20 // 198: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 201: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 204: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 207: aload 5 // 209: areturn // 210: aload 10 // 212: iload 8 // 214: iload 9 // 216: iconst_1 // 217: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 220: astore 11 // 222: goto -170 -> 52 // 225: aload 15 // 227: iload 8 // 229: iload 9 // 231: iconst_1 // 232: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 235: astore 22 // 237: aload 22 // 239: astore 16 // 241: goto -109 -> 132 // 244: astore_3 // 245: aload_3 // 246: astore 4 // 248: aconst_null // 249: astore 5 // 251: aload 4 // 253: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 256: aload 5 // 258: areturn // 259: astore 4 // 261: goto -10 -> 251 // // Exception table: // from to target type // 0 29 244 java/lang/Exception // 36 52 244 java/lang/Exception // 52 58 244 java/lang/Exception // 62 66 244 java/lang/Exception // 66 109 244 java/lang/Exception // 116 132 244 java/lang/Exception // 132 174 244 java/lang/Exception // 210 222 244 java/lang/Exception // 225 237 244 java/lang/Exception // 178 207 259 java/lang/Exception } public static Bitmap StyleElegant(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleElegant(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleElegant time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap StyleElegantNew(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleElegantNew(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleElegantNew time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } // ERROR // public static Bitmap StyleF(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { // Byte code: // 0: invokestatic 128 java/lang/System:currentTimeMillis ()J // 3: lstore 6 // 5: aload_0 // 6: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 9: istore 8 // 11: aload_0 // 12: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 15: istore 9 // 17: ldc_w 580 // 20: aload_1 // 21: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 24: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 27: astore 10 // 29: new 150 java/lang/StringBuilder // 32: dup // 33: ldc_w 582 // 36: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 39: aload_0 // 40: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 43: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 46: ldc_w 584 // 49: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 52: aload_0 // 53: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 56: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 59: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 62: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 65: iload 8 // 67: iload 9 // 69: if_icmple +253 -> 322 // 72: aload 10 // 74: iconst_1 // 75: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 78: iload 8 // 80: iload 9 // 82: iconst_1 // 83: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 86: astore 11 // 88: new 150 java/lang/StringBuilder // 91: dup // 92: ldc_w 586 // 95: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 98: aload 11 // 100: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 103: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 106: ldc_w 299 // 109: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 112: aload 11 // 114: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 117: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 120: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 123: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 126: aload_0 // 127: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 130: astore 12 // 132: iload_2 // 133: ifeq +7 -> 140 // 136: aload_0 // 137: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 140: aload 11 // 142: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 145: astore 13 // 147: aload 11 // 149: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 152: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 155: aload 12 // 157: aload 13 // 159: iload 8 // 161: iload 9 // 163: invokevirtual 589 com/mt/mtxx/image/JNI:StyleFP1 ([I[III)V // 166: aconst_null // 167: checkcast 367 [I // 170: pop // 171: ldc_w 562 // 174: aload_1 // 175: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 178: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 181: astore 15 // 183: iload 8 // 185: iload 9 // 187: if_icmple +150 -> 337 // 190: aload 15 // 192: iconst_1 // 193: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 196: iload 8 // 198: iload 9 // 200: iconst_1 // 201: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 204: astore 16 // 206: new 150 java/lang/StringBuilder // 209: dup // 210: ldc_w 591 // 213: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 216: aload 16 // 218: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 221: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 224: ldc_w 299 // 227: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 230: aload 16 // 232: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 235: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 238: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 241: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 244: aload 16 // 246: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 249: astore 17 // 251: aload 16 // 253: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 256: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 259: aload 12 // 261: aload 17 // 263: iload 8 // 265: iload 9 // 267: invokevirtual 594 com/mt/mtxx/image/JNI:StyleFP2 ([I[III)V // 270: aconst_null // 271: checkcast 367 [I // 274: pop // 275: aload 12 // 277: iload 8 // 279: iload 9 // 281: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 284: astore 19 // 286: aload 19 // 288: astore 5 // 290: invokestatic 128 java/lang/System:currentTimeMillis ()J // 293: lload 6 // 295: lsub // 296: lstore 20 // 298: new 150 java/lang/StringBuilder // 301: dup // 302: ldc_w 596 // 305: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 308: lload 20 // 310: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 313: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 316: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 319: aload 5 // 321: areturn // 322: aload 10 // 324: iload 8 // 326: iload 9 // 328: iconst_1 // 329: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 332: astore 11 // 334: goto -246 -> 88 // 337: aload 15 // 339: iload 8 // 341: iload 9 // 343: iconst_1 // 344: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 347: astore 22 // 349: aload 22 // 351: astore 16 // 353: goto -147 -> 206 // 356: astore_3 // 357: aload_3 // 358: astore 4 // 360: aconst_null // 361: astore 5 // 363: aload 4 // 365: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 368: aload 5 // 370: areturn // 371: astore 4 // 373: goto -10 -> 363 // // Exception table: // from to target type // 0 65 356 java/lang/Exception // 72 88 356 java/lang/Exception // 88 132 356 java/lang/Exception // 136 140 356 java/lang/Exception // 140 183 356 java/lang/Exception // 190 206 356 java/lang/Exception // 206 286 356 java/lang/Exception // 322 334 356 java/lang/Exception // 337 349 356 java/lang/Exception // 290 319 371 java/lang/Exception } public static Bitmap StyleFilm(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleFilm(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleFilm time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } // ERROR // public static Bitmap StyleG(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { // Byte code: // 0: new 150 java/lang/StringBuilder // 3: dup // 4: ldc_w 604 // 7: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 10: aload_0 // 11: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 14: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 17: ldc_w 299 // 20: invokevirtual 183 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 23: aload_0 // 24: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 27: invokevirtual 178 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; // 30: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 33: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 36: invokestatic 128 java/lang/System:currentTimeMillis ()J // 39: lstore 6 // 41: aload_0 // 42: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 45: istore 8 // 47: aload_0 // 48: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 51: istore 9 // 53: ldc_w 606 // 56: aload_1 // 57: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 60: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 63: astore 10 // 65: iload 8 // 67: iload 9 // 69: if_icmple +205 -> 274 // 72: aload 10 // 74: iconst_1 // 75: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 78: iload 8 // 80: iload 9 // 82: iconst_1 // 83: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 86: astore 11 // 88: aload 11 // 90: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 93: astore 12 // 95: aload 11 // 97: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 100: aload_0 // 101: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 104: astore 13 // 106: iload_2 // 107: ifeq +7 -> 114 // 110: aload_0 // 111: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 114: ldc_w 608 // 117: aload_1 // 118: invokestatic 614 com/mt/mtxx/mtxx/MyPro:getBytesFromAssets (Ljava/lang/String;Landroid/content/Context;)[B // 121: astore 14 // 123: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 126: aload 13 // 128: aload 12 // 130: iload 8 // 132: iload 9 // 134: aload 14 // 136: aload 14 // 138: arraylength // 139: invokevirtual 618 com/mt/mtxx/image/JNI:StyleGP1 ([I[III[BI)V // 142: aconst_null // 143: checkcast 367 [I // 146: pop // 147: ldc_w 620 // 150: aload_1 // 151: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 154: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 157: astore 16 // 159: iload 8 // 161: iload 9 // 163: if_icmple +126 -> 289 // 166: aload 16 // 168: iconst_1 // 169: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 172: iload 8 // 174: iload 9 // 176: iconst_1 // 177: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 180: astore 17 // 182: aload 17 // 184: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 187: astore 18 // 189: aload 17 // 191: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 194: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 197: aload 13 // 199: aload 18 // 201: iload 8 // 203: iload 9 // 205: aload 14 // 207: aload 14 // 209: arraylength // 210: invokevirtual 623 com/mt/mtxx/image/JNI:StyleGP2 ([I[III[BI)V // 213: aconst_null // 214: checkcast 367 [I // 217: pop // 218: aload 13 // 220: iload 8 // 222: iload 9 // 224: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 227: astore 20 // 229: aload 20 // 231: astore 5 // 233: aconst_null // 234: checkcast 367 [I // 237: pop // 238: invokestatic 128 java/lang/System:currentTimeMillis ()J // 241: lload 6 // 243: lsub // 244: lstore 22 // 246: new 150 java/lang/StringBuilder // 249: dup // 250: ldc_w 625 // 253: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 256: astore 24 // 258: aload 24 // 260: lload 22 // 262: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 265: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 268: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 271: aload 5 // 273: areturn // 274: aload 10 // 276: iload 8 // 278: iload 9 // 280: iconst_1 // 281: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 284: astore 11 // 286: goto -198 -> 88 // 289: aload 16 // 291: iload 8 // 293: iload 9 // 295: iconst_1 // 296: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 299: astore 25 // 301: aload 25 // 303: astore 17 // 305: goto -123 -> 182 // 308: astore_3 // 309: aload_3 // 310: astore 4 // 312: aconst_null // 313: astore 5 // 315: aload 4 // 317: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 320: aload 5 // 322: areturn // 323: astore 4 // 325: goto -10 -> 315 // // Exception table: // from to target type // 0 65 308 java/lang/Exception // 72 88 308 java/lang/Exception // 88 106 308 java/lang/Exception // 110 114 308 java/lang/Exception // 114 159 308 java/lang/Exception // 166 182 308 java/lang/Exception // 182 229 308 java/lang/Exception // 274 286 308 java/lang/Exception // 289 301 308 java/lang/Exception // 233 271 323 java/lang/Exception } public static Bitmap StyleImpression(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleImpression(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleImpression time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap StyleJapanese(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleJapanese(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleJapanese time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } // ERROR // public static Bitmap StyleLomo(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { // Byte code: // 0: invokestatic 128 java/lang/System:currentTimeMillis ()J // 3: lstore 6 // 5: aload_0 // 6: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 9: istore 8 // 11: aload_0 // 12: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 15: istore 9 // 17: aload_0 // 18: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 21: astore 10 // 23: iload_2 // 24: ifeq +7 -> 31 // 27: aload_0 // 28: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 31: ldc_w 638 // 34: aload_1 // 35: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 38: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 41: astore 11 // 43: aload 11 // 45: iload 8 // 47: iload 9 // 49: iconst_0 // 50: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 53: astore 12 // 55: aload 11 // 57: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 60: aload 12 // 62: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 65: astore 13 // 67: aload 12 // 69: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 72: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 75: aload 10 // 77: iload 8 // 79: iload 9 // 81: aload 13 // 83: invokevirtual 642 com/mt/mtxx/image/JNI:LOMO1 ([III[I)V // 86: aconst_null // 87: checkcast 367 [I // 90: pop // 91: ldc_w 644 // 94: aload_1 // 95: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 98: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 101: astore 15 // 103: aload 15 // 105: iload 8 // 107: iload 9 // 109: iconst_0 // 110: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 113: astore 16 // 115: aload 15 // 117: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 120: aload 16 // 122: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 125: astore 17 // 127: aload 16 // 129: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 132: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 135: aload 10 // 137: iload 8 // 139: iload 9 // 141: aload 17 // 143: invokevirtual 647 com/mt/mtxx/image/JNI:LOMO2 ([III[I)V // 146: aconst_null // 147: checkcast 367 [I // 150: pop // 151: aload 10 // 153: iload 8 // 155: iload 9 // 157: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 160: astore 19 // 162: aload 19 // 164: astore 5 // 166: invokestatic 128 java/lang/System:currentTimeMillis ()J // 169: lload 6 // 171: lsub // 172: lstore 20 // 174: new 150 java/lang/StringBuilder // 177: dup // 178: ldc_w 649 // 181: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 184: lload 20 // 186: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 189: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 192: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 195: aload 5 // 197: areturn // 198: astore_3 // 199: aload_3 // 200: astore 4 // 202: aconst_null // 203: astore 5 // 205: aload 4 // 207: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 210: aload 5 // 212: areturn // 213: astore 4 // 215: goto -10 -> 205 // // Exception table: // from to target type // 0 23 198 java/lang/Exception // 27 31 198 java/lang/Exception // 31 162 198 java/lang/Exception // 166 195 213 java/lang/Exception } // ERROR // public static Bitmap StyleLomoA(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { // Byte code: // 0: invokestatic 128 java/lang/System:currentTimeMillis ()J // 3: lstore 6 // 5: aload_0 // 6: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 9: istore 8 // 11: aload_0 // 12: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 15: istore 9 // 17: aload_0 // 18: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 21: astore 10 // 23: iload_2 // 24: ifeq +7 -> 31 // 27: aload_0 // 28: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 31: ldc_w 652 // 34: aload_1 // 35: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 38: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 41: astore 11 // 43: iload 8 // 45: iload 9 // 47: if_icmple +186 -> 233 // 50: aload 11 // 52: iconst_1 // 53: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 56: iload 8 // 58: iload 9 // 60: iconst_1 // 61: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 64: astore 12 // 66: aload 12 // 68: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 71: astore 13 // 73: aload 12 // 75: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 78: ldc_w 654 // 81: aload_1 // 82: invokestatic 614 com/mt/mtxx/mtxx/MyPro:getBytesFromAssets (Ljava/lang/String;Landroid/content/Context;)[B // 85: astore 14 // 87: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 90: aload 10 // 92: aload 13 // 94: iload 8 // 96: iload 9 // 98: aload 14 // 100: aload 14 // 102: arraylength // 103: invokevirtual 657 com/mt/mtxx/image/JNI:StyleLomoAP1 ([I[III[BI)V // 106: aconst_null // 107: checkcast 367 [I // 110: pop // 111: ldc_w 562 // 114: aload_1 // 115: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 118: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 121: astore 16 // 123: iload 8 // 125: iload 9 // 127: if_icmple +121 -> 248 // 130: aload 16 // 132: iconst_1 // 133: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 136: iload 8 // 138: iload 9 // 140: iconst_1 // 141: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 144: astore 17 // 146: aload 17 // 148: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 151: astore 18 // 153: aload 17 // 155: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 158: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 161: aload 10 // 163: aload 18 // 165: iload 8 // 167: iload 9 // 169: aload 14 // 171: aload 14 // 173: arraylength // 174: invokevirtual 660 com/mt/mtxx/image/JNI:StyleLomoAP2 ([I[III[BI)V // 177: aconst_null // 178: checkcast 367 [I // 181: pop // 182: aload 10 // 184: iload 8 // 186: iload 9 // 188: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 191: astore 20 // 193: aload 20 // 195: astore 5 // 197: invokestatic 128 java/lang/System:currentTimeMillis ()J // 200: lload 6 // 202: lsub // 203: lstore 21 // 205: new 150 java/lang/StringBuilder // 208: dup // 209: ldc_w 662 // 212: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 215: astore 23 // 217: aload 23 // 219: lload 21 // 221: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 224: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 227: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 230: aload 5 // 232: areturn // 233: aload 11 // 235: iload 8 // 237: iload 9 // 239: iconst_1 // 240: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 243: astore 12 // 245: goto -179 -> 66 // 248: aload 16 // 250: iload 8 // 252: iload 9 // 254: iconst_1 // 255: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 258: astore 24 // 260: aload 24 // 262: astore 17 // 264: goto -118 -> 146 // 267: astore_3 // 268: aload_3 // 269: astore 4 // 271: aconst_null // 272: astore 5 // 274: aload 4 // 276: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 279: aload 5 // 281: areturn // 282: astore 4 // 284: goto -10 -> 274 // // Exception table: // from to target type // 0 23 267 java/lang/Exception // 27 31 267 java/lang/Exception // 31 43 267 java/lang/Exception // 50 66 267 java/lang/Exception // 66 123 267 java/lang/Exception // 130 146 267 java/lang/Exception // 146 193 267 java/lang/Exception // 233 245 267 java/lang/Exception // 248 260 267 java/lang/Exception // 197 230 282 java/lang/Exception } public static Bitmap StyleLomoB(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); MTDebug.Print("StyleLomoB 0"); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); MTDebug.Print("StyleLomoB 1"); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); MTDebug.Print("StyleLomoB 2"); jni.StyleLomoB(arrayOfInt, i, j); MTDebug.Print("StyleLomoB 3"); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleLomoB time=" + l2); return localBitmap; } catch (Exception localException) { MTDebug.Print("StyleLomoB Error!" + localException.toString()); localException.printStackTrace(); } return localBitmap; } public static Bitmap StyleLomoC(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleLomoC(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleLomoC time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap StyleLomoChristmas(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { Bitmap localBitmap1 = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt1 = bitmap2IntARGB(paramBitmap); localBitmap1 = null; if (paramBoolean) paramBitmap.recycle(); Bitmap localBitmap2 = LoadAssertsPic("style/mtxx_festival_1b.jpg", paramContext.getAssets()); Bitmap localBitmap3 = resize(localBitmap2, i, j, false); localBitmap2.recycle(); int[] arrayOfInt2 = bitmap2IntARGB(localBitmap3); localBitmap3.recycle(); jni.StyleLomoChristmas(arrayOfInt1, arrayOfInt2, i, j); ((int[])null); System.gc(); localBitmap1 = intARGB2Bimap(arrayOfInt1, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleLomoChristmas time=" + l2); return localBitmap1; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap1; } public static Bitmap StyleLomoHDR(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleLomoHDR(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleLomoHDR time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } // ERROR // public static Bitmap StyleMilk(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { // Byte code: // 0: invokestatic 128 java/lang/System:currentTimeMillis ()J // 3: lstore 6 // 5: aload_0 // 6: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 9: istore 8 // 11: aload_0 // 12: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 15: istore 9 // 17: aload_0 // 18: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 21: astore 10 // 23: iload_2 // 24: ifeq +9 -> 33 // 27: aload_0 // 28: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 31: aconst_null // 32: astore_0 // 33: ldc_w 697 // 36: aload_1 // 37: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 40: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 43: astore 11 // 45: aload 11 // 47: iload 8 // 49: iload 9 // 51: iconst_0 // 52: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 55: astore 12 // 57: aload 11 // 59: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 62: aload 12 // 64: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 67: astore 13 // 69: aload 12 // 71: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 74: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 77: aload 10 // 79: aload 13 // 81: iload 8 // 83: iload 9 // 85: invokevirtual 700 com/mt/mtxx/image/JNI:StyleMilk1 ([I[III)V // 88: aconst_null // 89: checkcast 367 [I // 92: pop // 93: invokestatic 354 java/lang/System:gc ()V // 96: ldc_w 702 // 99: aload_1 // 100: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 103: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 106: astore 15 // 108: aload 15 // 110: iload 8 // 112: iload 9 // 114: iconst_0 // 115: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 118: astore 16 // 120: aload 15 // 122: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 125: aload 16 // 127: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 130: astore 17 // 132: aload 16 // 134: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 137: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 140: aload 10 // 142: aload 17 // 144: iload 8 // 146: iload 9 // 148: invokevirtual 705 com/mt/mtxx/image/JNI:StyleMilk2 ([I[III)V // 151: aconst_null // 152: checkcast 367 [I // 155: pop // 156: aload_0 // 157: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 160: astore 19 // 162: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 165: aload 10 // 167: aload 19 // 169: iload 8 // 171: iload 9 // 173: invokevirtual 708 com/mt/mtxx/image/JNI:StyleMilk3 ([I[III)V // 176: aconst_null // 177: checkcast 367 [I // 180: pop // 181: ldc_w 710 // 184: aload_1 // 185: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 188: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 191: astore 21 // 193: aload 21 // 195: iload 8 // 197: iload 9 // 199: iconst_0 // 200: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 203: astore 22 // 205: aload 21 // 207: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 210: aload 22 // 212: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 215: astore 23 // 217: aload 22 // 219: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 222: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 225: aload 10 // 227: aload 23 // 229: iload 8 // 231: iload 9 // 233: invokevirtual 713 com/mt/mtxx/image/JNI:StyleMilk4 ([I[III)V // 236: aconst_null // 237: checkcast 367 [I // 240: pop // 241: aload 10 // 243: iload 8 // 245: iload 9 // 247: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 250: astore 25 // 252: aload 25 // 254: astore 5 // 256: invokestatic 128 java/lang/System:currentTimeMillis ()J // 259: lload 6 // 261: lsub // 262: lstore 26 // 264: new 150 java/lang/StringBuilder // 267: dup // 268: ldc_w 356 // 271: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 274: lload 26 // 276: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 279: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 282: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 285: aload 5 // 287: areturn // 288: astore_3 // 289: aload_3 // 290: astore 4 // 292: aconst_null // 293: astore 5 // 295: aload 4 // 297: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 300: aload 5 // 302: areturn // 303: astore 4 // 305: goto -10 -> 295 // // Exception table: // from to target type // 0 23 288 java/lang/Exception // 27 31 288 java/lang/Exception // 33 252 288 java/lang/Exception // 256 285 303 java/lang/Exception } public static Bitmap StyleOldPhoto(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { Bitmap localBitmap1 = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); Bitmap localBitmap2 = LoadAssertsPic("style/mtxx_lzp_b.jpg", paramContext.getAssets()); Bitmap localBitmap3 = resize(localBitmap2, i, j, false); localBitmap2.recycle(); int[] arrayOfInt1 = bitmap2IntARGB(paramBitmap); localBitmap1 = null; if (paramBoolean) paramBitmap.recycle(); int[] arrayOfInt2 = bitmap2IntARGB(localBitmap3); localBitmap3.recycle(); jni.StyleOldPhoto(arrayOfInt1, arrayOfInt2, i, j); localBitmap1 = intARGB2Bimap(arrayOfInt1, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleOldPhoto time=" + l2); return localBitmap1; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap1; } // ERROR // public static Bitmap StyleOldPhoto2(Bitmap paramBitmap, Context paramContext, boolean paramBoolean) { // Byte code: // 0: ldc_w 722 // 3: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 6: pop2 // 7: invokestatic 128 java/lang/System:currentTimeMillis ()J // 10: lstore 8 // 12: aload_0 // 13: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 16: istore 10 // 18: aload_0 // 19: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 22: istore 11 // 24: ldc_w 724 // 27: aload_1 // 28: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 31: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 34: astore 12 // 36: iload 10 // 38: iload 11 // 40: if_icmple +284 -> 324 // 43: aload 12 // 45: iconst_1 // 46: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 49: astore 13 // 51: ldc_w 726 // 54: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 57: pop2 // 58: aload 13 // 60: iload 10 // 62: iload 11 // 64: iconst_1 // 65: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 68: astore 16 // 70: ldc_w 728 // 73: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 76: pop2 // 77: invokestatic 354 java/lang/System:gc ()V // 80: ldc_w 730 // 83: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 86: pop2 // 87: aload 16 // 89: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 92: astore 21 // 94: aload 16 // 96: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 99: aload_0 // 100: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 103: astore 22 // 105: iload_2 // 106: ifeq +7 -> 113 // 109: aload_0 // 110: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 113: invokestatic 354 java/lang/System:gc ()V // 116: ldc_w 728 // 119: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 122: pop2 // 123: ldc_w 732 // 126: aload_1 // 127: invokestatic 614 com/mt/mtxx/mtxx/MyPro:getBytesFromAssets (Ljava/lang/String;Landroid/content/Context;)[B // 130: astore 25 // 132: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 135: aload 22 // 137: aload 21 // 139: iload 10 // 141: iload 11 // 143: aload 25 // 145: aload 25 // 147: arraylength // 148: invokevirtual 735 com/mt/mtxx/image/JNI:StyleOldPhotoP1 ([I[III[BI)V // 151: ldc_w 737 // 154: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 157: pop2 // 158: aconst_null // 159: checkcast 367 [I // 162: pop // 163: invokestatic 354 java/lang/System:gc ()V // 166: ldc_w 739 // 169: aload_1 // 170: invokevirtual 331 android/content/Context:getAssets ()Landroid/content/res/AssetManager; // 173: invokestatic 335 com/mt/mtxx/image/ImageProcess:LoadAssertsPic (Ljava/lang/String;Landroid/content/res/AssetManager;)Landroid/graphics/Bitmap; // 176: astore 29 // 178: iload 10 // 180: iload 11 // 182: if_icmple +179 -> 361 // 185: aload 29 // 187: iconst_1 // 188: invokestatic 338 com/mt/mtxx/image/ImageProcess:rotate90 (Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap; // 191: iload 10 // 193: iload 11 // 195: iconst_1 // 196: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 199: astore 30 // 201: ldc_w 741 // 204: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 207: pop2 // 208: aload 30 // 210: invokestatic 262 com/mt/mtxx/image/ImageProcess:bitmap2IntARGB (Landroid/graphics/Bitmap;)[I // 213: astore 33 // 215: aload 30 // 217: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 220: getstatic 117 com/mt/mtxx/image/ImageProcess:jni Lcom/mt/mtxx/image/JNI; // 223: aload 22 // 225: aload 33 // 227: iload 10 // 229: iload 11 // 231: aload 25 // 233: aload 25 // 235: arraylength // 236: invokevirtual 744 com/mt/mtxx/image/JNI:StyleOldPhotoP2 ([I[III[BI)V // 239: ldc_w 746 // 242: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 245: pop2 // 246: aconst_null // 247: checkcast 367 [I // 250: pop // 251: invokestatic 354 java/lang/System:gc ()V // 254: ldc_w 748 // 257: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 260: pop2 // 261: aconst_null // 262: checkcast 750 [B // 265: pop // 266: ldc_w 752 // 269: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 272: pop2 // 273: aload 22 // 275: iload 10 // 277: iload 11 // 279: invokestatic 206 com/mt/mtxx/image/ImageProcess:intARGB2Bimap ([III)Landroid/graphics/Bitmap; // 282: astore 42 // 284: aload 42 // 286: astore 5 // 288: invokestatic 128 java/lang/System:currentTimeMillis ()J // 291: lload 8 // 293: lsub // 294: lstore 43 // 296: new 150 java/lang/StringBuilder // 299: dup // 300: ldc_w 754 // 303: invokespecial 155 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 306: astore 45 // 308: aload 45 // 310: lload 43 // 312: invokevirtual 159 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; // 315: invokevirtual 163 java/lang/StringBuilder:toString ()Ljava/lang/String; // 318: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 321: aload 5 // 323: areturn // 324: aload 12 // 326: iload 10 // 328: iload 11 // 330: iconst_1 // 331: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 334: astore 16 // 336: ldc_w 756 // 339: invokestatic 456 com/mt/mtxx/mtxx/MTDebug:memeryUsed (Ljava/lang/String;)D // 342: pop2 // 343: goto -273 -> 70 // 346: astore_3 // 347: aload_3 // 348: astore 4 // 350: aconst_null // 351: astore 5 // 353: aload 4 // 355: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 358: aload 5 // 360: areturn // 361: aload 29 // 363: iload 10 // 365: iload 11 // 367: iconst_1 // 368: invokestatic 341 com/mt/mtxx/image/ImageProcess:resize (Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; // 371: astore 46 // 373: aload 46 // 375: astore 30 // 377: goto -176 -> 201 // 380: astore 4 // 382: goto -29 -> 353 // // Exception table: // from to target type // 0 36 346 java/lang/Exception // 43 70 346 java/lang/Exception // 70 105 346 java/lang/Exception // 109 113 346 java/lang/Exception // 113 178 346 java/lang/Exception // 185 201 346 java/lang/Exception // 201 284 346 java/lang/Exception // 324 343 346 java/lang/Exception // 361 373 346 java/lang/Exception // 288 321 380 java/lang/Exception } public static Bitmap StyleRetro(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { long l1 = System.currentTimeMillis(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); localBitmap = null; if (paramBoolean) paramBitmap.recycle(); jni.StyleRetro(arrayOfInt, i, j); localBitmap = intARGB2Bimap(arrayOfInt, i, j); long l2 = System.currentTimeMillis() - l1; MTDebug.Print("StyleRetro time=" + l2); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap White(Bitmap paramBitmap, int paramInt1, int paramInt2, int paramInt3, double paramDouble) { try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = bitmap2IntARGB(paramBitmap); jni.SSkinbeautify(arrayOfInt, i, j, paramInt1, paramInt2, paramInt3, paramDouble); Bitmap localBitmap = intARGB2Bimap(arrayOfInt, i, j); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return null; } public static int add(int paramInt, byte paramByte) { return jni.add(paramInt, paramByte); } public static byte[] bitmap2Byte(Bitmap paramBitmap) { byte[] arrayOfByte = (byte[])null; while (true) { int i; int n; try { i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int[] arrayOfInt = new int[i * j]; arrayOfByte = new byte[3 * (i * j)]; paramBitmap.getPixels(arrayOfInt, 0, i, 0, 0, i, j); int k = 0; int m = 0; n = 0; if (n >= j) { ((int[])null); return arrayOfByte; arrayOfByte[m] = (byte)(0xFF & arrayOfInt[k]); arrayOfByte[(m + 1)] = (byte)(0xFF & arrayOfInt[k] >> 8); arrayOfByte[(m + 2)] = (byte)(0xFF & arrayOfInt[k] >> 16); m += 3; k++; i1++; } } catch (Exception localException) { localException.printStackTrace(); return arrayOfByte; } int i1 = 0; if (i1 < i) continue; n++; } } public static byte[] bitmap2ByteARGB(Bitmap paramBitmap) { byte[] arrayOfByte = (byte[])null; while (true) { int i; int n; try { i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); arrayOfByte = new byte[4 * (i * j)]; int[] arrayOfInt = new int[i * j]; paramBitmap.getPixels(arrayOfInt, 0, i, 0, 0, i, j); int k = 0; int m = 0; n = 0; if (n >= j) { ((int[])null); return arrayOfByte; int i2 = arrayOfInt[k]; arrayOfByte[m] = (byte)(i2 & 0xFF); arrayOfByte[(m + 1)] = (byte)(0xFF & i2 >> 8); arrayOfByte[(m + 2)] = (byte)(0xFF & i2 >> 16); arrayOfByte[(m + 3)] = (byte)(0xFF & i2 >> 24); m += 4; k++; i1++; } } catch (Exception localException) { localException.printStackTrace(); return arrayOfByte; } int i1 = 0; if (i1 < i) continue; n++; } } public static int[] bitmap2IntARGB(Bitmap paramBitmap) { int[] arrayOfInt = (int[])null; try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); arrayOfInt = new int[i * j]; paramBitmap.getPixels(arrayOfInt, 0, i, 0, 0, i, j); return arrayOfInt; } catch (Exception localException) { localException.printStackTrace(); } return arrayOfInt; } public static Bitmap bright(Bitmap paramBitmap, float paramFloat, boolean paramBoolean) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramBitmap.getWidth(), paramBitmap.getHeight(), paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap); if (paramFloat < 0.0F) paramFloat = 1.0F; Paint localPaint = new Paint(); ColorMatrix localColorMatrix = new ColorMatrix(); localColorMatrix.set(new float[] { paramFloat, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, paramFloat, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, paramFloat, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1.0F, 0.0F }); localPaint.setColorFilter(new ColorMatrixColorFilter(localColorMatrix)); localPaint.setAntiAlias(true); localPaint.setDither(false); localPaint.setFilterBitmap(true); localCanvas.drawBitmap(paramBitmap, 0.0F, 0.0F, localPaint); if (paramBoolean) paramBitmap.recycle(); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap bytes2Bimap(byte[] paramArrayOfByte, int paramInt1, int paramInt2) { while (true) { int i; try { if (paramArrayOfByte.length == 3 * (paramInt1 * paramInt2)) continue; MTDebug.PrintError("bytes2Bimap data.length=" + paramArrayOfByte.length + " w*h*4=" + 3 * (paramInt1 * paramInt2)); return null; if (paramArrayOfByte.length <= 0) continue; Bitmap localBitmap = Bitmap.createBitmap(paramInt1, paramInt2, MyData.mConfig); if (localBitmap == null) return null; int[] arrayOfInt = new int[paramInt1 * paramInt2]; i = 0; int j = 0; int k = 0; if (i >= paramInt2) { localBitmap.setPixels(arrayOfInt, 0, paramInt1, 0, 0, paramInt1, paramInt2); return localBitmap; arrayOfInt[k] = ((0xFF & paramArrayOfByte[j]) + ((0xFF & paramArrayOfByte[(j + 1)]) << 8) + ((0xFF & paramArrayOfByte[(j + 2)]) << 16)); j += 3; k++; m++; break label172; return null; } } catch (Exception localException) { localException.printStackTrace(); return null; } int m = 0; label172: if (m < paramInt1) continue; i++; } } public static Bitmap bytesARGB2Bimap(byte[] paramArrayOfByte, int paramInt1, int paramInt2) { while (true) { int i; try { if (paramArrayOfByte.length <= 0) continue; if (paramArrayOfByte.length == 4 * (paramInt1 * paramInt2)) continue; MTDebug.PrintError("bytesARGB2Bimap data.length=" + paramArrayOfByte.length + " w*h*4=" + 4 * (paramInt1 * paramInt2)); return null; Bitmap localBitmap = Bitmap.createBitmap(paramInt1, paramInt2, MyData.mConfig); if (localBitmap == null) return null; int[] arrayOfInt = new int[paramInt1 * paramInt2]; i = 0; int j = 0; int k = 0; if (i >= paramInt2) { localBitmap.setPixels(arrayOfInt, 0, paramInt1, 0, 0, paramInt1, paramInt2); ((int[])null); return localBitmap; arrayOfInt[j] = ((0xFF & paramArrayOfByte[k]) + ((0xFF & paramArrayOfByte[(k + 1)]) << 8) + ((0xFF & paramArrayOfByte[(k + 2)]) << 16) + ((0xFF & paramArrayOfByte[(k + 3)]) << 24)); k += 4; j++; m++; break label191; return null; } } catch (Exception localException) { localException.printStackTrace(); return null; } int m = 0; label191: if (m < paramInt1) continue; i++; } } public static boolean changeARGB(byte[] paramArrayOfByte, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { int i = 0; try { while (i < paramArrayOfByte.length) { if (paramInt1 >= 0) paramArrayOfByte[(i + 3)] = (byte)paramInt1; if (paramInt2 >= 0) paramArrayOfByte[(i + 2)] = (byte)paramInt2; if (paramInt3 >= 0) paramArrayOfByte[(i + 1)] = (byte)paramInt3; if (paramInt4 >= 0) paramArrayOfByte[(i + 0)] = (byte)paramInt4; i += 4; } } catch (Exception localException) { localException.printStackTrace(); } return true; } public static boolean changeIntARGB(int[] paramArrayOfInt, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { int i = 0; try { while (i < paramArrayOfInt.length) { if ((paramInt1 >= 0) && (paramInt1 < 256)) paramArrayOfInt[i] = ((0xFFFFFF & paramArrayOfInt[i]) + (paramInt1 << 24)); if ((paramInt2 >= 0) && (paramInt2 < 256)) paramArrayOfInt[i] = ((0xFF00FFFF & paramArrayOfInt[i]) + (paramInt2 << 16)); if ((paramInt3 >= 0) && (paramInt3 < 256)) paramArrayOfInt[i] = ((0xFFFF00FF & paramArrayOfInt[i]) + (paramInt3 << 8)); if ((paramInt4 >= 0) && (paramInt4 < 256)) paramArrayOfInt[i] = (paramInt4 + (0xFFFFFF00 & paramArrayOfInt[i])); i++; } } catch (Exception localException) { localException.printStackTrace(); } return true; } public static Bitmap colorRGB(Bitmap paramBitmap, int paramInt, float paramFloat) { Bitmap localBitmap = null; while (true) { ColorMatrix localColorMatrix; try { localBitmap = Bitmap.createBitmap(paramBitmap.getWidth(), paramBitmap.getHeight(), paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); localColorMatrix = new ColorMatrix(); if (paramInt != 0) continue; localColorMatrix.setScale(paramFloat, 1.0F, 1.0F, 255.0F); localPaint.setColorFilter(new ColorMatrixColorFilter(localColorMatrix)); localPaint.setAntiAlias(true); localPaint.setDither(false); localCanvas.drawBitmap(paramBitmap, 0.0F, 0.0F, localPaint); return localBitmap; if (paramInt == 0) { localColorMatrix.setScale(1.0F, paramFloat, 1.0F, 255.0F); continue; } } catch (Exception localException) { localException.printStackTrace(); return localBitmap; } if (paramInt != 0) continue; localColorMatrix.setScale(1.0F, 1.0F, paramFloat, 255.0F); } } public static Bitmap combineBitmap(Bitmap paramBitmap1, int paramInt1, int paramInt2, int paramInt3, int paramInt4, Bitmap paramBitmap2, boolean paramBoolean) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramBitmap1.getWidth(), paramBitmap1.getHeight(), paramBitmap1.getConfig()); if (paramBoolean) { paramBitmap1.recycle(); paramBitmap1 = null; } Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); localPaint.setAntiAlias(true); localPaint.setDither(false); localCanvas.drawBitmap(paramBitmap1, 0.0F, 0.0F, localPaint); localCanvas.drawBitmap(paramBitmap2, new Rect(0, 0, paramBitmap2.getWidth(), paramBitmap2.getHeight()), new Rect(paramInt1, paramInt2, paramInt1 + paramInt3, paramInt2 + paramInt4), localPaint); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap combineBitmap(Bitmap paramBitmap1, int paramInt1, int paramInt2, Bitmap paramBitmap2) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramBitmap1.getWidth(), paramBitmap1.getHeight(), paramBitmap1.getConfig()); Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); localPaint.setAntiAlias(true); localPaint.setDither(false); localCanvas.drawBitmap(paramBitmap1, paramInt1, paramInt2, localPaint); localCanvas.drawBitmap(paramBitmap2, paramInt1, paramInt2, localPaint); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } // ERROR // public static Bitmap contrast(Bitmap paramBitmap, int paramInt, boolean paramBoolean) { // Byte code: // 0: aload_0 // 1: invokevirtual 134 android/graphics/Bitmap:getWidth ()I // 4: aload_0 // 5: invokevirtual 137 android/graphics/Bitmap:getHeight ()I // 8: aload_0 // 9: invokevirtual 234 android/graphics/Bitmap:getConfig ()Landroid/graphics/Bitmap$Config; // 12: invokestatic 413 android/graphics/Bitmap:createBitmap (IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; // 15: astore 6 // 17: new 415 android/graphics/Canvas // 20: dup // 21: aload 6 // 23: invokespecial 418 android/graphics/Canvas:<init> (Landroid/graphics/Bitmap;)V // 26: astore 7 // 28: new 420 android/graphics/Paint // 31: dup // 32: invokespecial 421 android/graphics/Paint:<init> ()V // 35: astore 8 // 37: new 779 android/graphics/ColorMatrix // 40: dup // 41: invokespecial 780 android/graphics/ColorMatrix:<init> ()V // 44: astore 9 // 46: iconst_2 // 47: iload_1 // 48: iconst_3 // 49: imul // 50: iconst_5 // 51: idiv // 52: bipush 30 // 54: isub // 55: imul // 56: istore 11 // 58: iload 11 // 60: ifge +268 -> 328 // 63: ldc_w 836 // 66: ldc_w 836 // 69: fconst_1 // 70: iload 11 // 72: i2f // 73: fmul // 74: ldc_w 837 // 77: fdiv // 78: fmul // 79: fadd // 80: fstore 12 // 82: fload 12 // 84: ldc_w 836 // 87: fdiv // 88: fstore 13 // 90: bipush 25 // 92: newarray float // 94: astore 14 // 96: aload 14 // 98: iconst_0 // 99: fload 13 // 101: fastore // 102: aload 14 // 104: iconst_1 // 105: fconst_0 // 106: fastore // 107: aload 14 // 109: iconst_2 // 110: fconst_0 // 111: fastore // 112: aload 14 // 114: iconst_3 // 115: fconst_0 // 116: fastore // 117: aload 14 // 119: iconst_4 // 120: ldc 43 // 122: ldc_w 836 // 125: fload 12 // 127: fsub // 128: fmul // 129: fastore // 130: aload 14 // 132: iconst_5 // 133: fconst_0 // 134: fastore // 135: aload 14 // 137: bipush 6 // 139: fload 13 // 141: fastore // 142: aload 14 // 144: bipush 7 // 146: fconst_0 // 147: fastore // 148: aload 14 // 150: bipush 8 // 152: fconst_0 // 153: fastore // 154: aload 14 // 156: bipush 9 // 158: ldc 43 // 160: ldc_w 836 // 163: fload 12 // 165: fsub // 166: fmul // 167: fastore // 168: aload 14 // 170: bipush 10 // 172: fconst_0 // 173: fastore // 174: aload 14 // 176: bipush 11 // 178: fconst_0 // 179: fastore // 180: aload 14 // 182: bipush 12 // 184: fload 13 // 186: fastore // 187: aload 14 // 189: bipush 13 // 191: fconst_0 // 192: fastore // 193: aload 14 // 195: bipush 14 // 197: ldc 43 // 199: ldc_w 836 // 202: fload 12 // 204: fsub // 205: fmul // 206: fastore // 207: aload 14 // 209: bipush 15 // 211: fconst_0 // 212: fastore // 213: aload 14 // 215: bipush 16 // 217: fconst_0 // 218: fastore // 219: aload 14 // 221: bipush 17 // 223: fconst_0 // 224: fastore // 225: aload 14 // 227: bipush 18 // 229: fconst_1 // 230: fastore // 231: aload 14 // 233: bipush 19 // 235: fconst_0 // 236: fastore // 237: aload 14 // 239: bipush 20 // 241: fconst_0 // 242: fastore // 243: aload 14 // 245: bipush 21 // 247: fconst_0 // 248: fastore // 249: aload 14 // 251: bipush 22 // 253: fconst_0 // 254: fastore // 255: aload 14 // 257: bipush 23 // 259: fconst_0 // 260: fastore // 261: aload 14 // 263: bipush 24 // 265: fconst_1 // 266: fastore // 267: aload 9 // 269: aload 14 // 271: invokevirtual 784 android/graphics/ColorMatrix:set ([F)V // 274: aload 8 // 276: new 786 android/graphics/ColorMatrixColorFilter // 279: dup // 280: aload 9 // 282: invokespecial 789 android/graphics/ColorMatrixColorFilter:<init> (Landroid/graphics/ColorMatrix;)V // 285: invokevirtual 793 android/graphics/Paint:setColorFilter (Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter; // 288: pop // 289: aload 8 // 291: iconst_1 // 292: invokevirtual 425 android/graphics/Paint:setAntiAlias (Z)V // 295: aload 8 // 297: iconst_0 // 298: invokevirtual 796 android/graphics/Paint:setDither (Z)V // 301: aload 8 // 303: iconst_1 // 304: invokevirtual 799 android/graphics/Paint:setFilterBitmap (Z)V // 307: aload 7 // 309: aload_0 // 310: fconst_0 // 311: fconst_0 // 312: aload 8 // 314: invokevirtual 429 android/graphics/Canvas:drawBitmap (Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V // 317: iload_2 // 318: ifeq +103 -> 421 // 321: aload_0 // 322: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 325: aload 6 // 327: areturn // 328: iload 11 // 330: iconst_1 // 331: irem // 332: i2f // 333: fstore 16 // 335: fload 16 // 337: fconst_0 // 338: fcmpl // 339: ifne +14 -> 353 // 342: getstatic 110 com/mt/mtxx/image/ImageProcess:DELTA_INDEX [F // 345: iload 11 // 347: faload // 348: fstore 17 // 350: goto +74 -> 424 // 353: getstatic 110 com/mt/mtxx/image/ImageProcess:DELTA_INDEX [F // 356: iload 11 // 358: iconst_0 // 359: ishl // 360: faload // 361: fconst_1 // 362: fload 16 // 364: fsub // 365: fmul // 366: fstore 18 // 368: getstatic 110 com/mt/mtxx/image/ImageProcess:DELTA_INDEX [F // 371: iconst_1 // 372: iload 11 // 374: iconst_0 // 375: ishl // 376: iadd // 377: faload // 378: fstore 19 // 380: fload 18 // 382: fload 16 // 384: fload 19 // 386: fmul // 387: fadd // 388: fstore 17 // 390: goto +34 -> 424 // 393: astore_3 // 394: aconst_null // 395: astore 4 // 397: aload_3 // 398: astore 5 // 400: aload 5 // 402: invokevirtual 171 java/lang/Exception:printStackTrace ()V // 405: aload 4 // 407: areturn // 408: astore 10 // 410: aload 10 // 412: astore 5 // 414: aload 6 // 416: astore 4 // 418: goto -18 -> 400 // 421: aload 6 // 423: areturn // 424: ldc_w 836 // 427: fload 17 // 429: ldc_w 836 // 432: fmul // 433: fadd // 434: fstore 12 // 436: goto -354 -> 82 // // Exception table: // from to target type // 0 17 393 java/lang/Exception // 17 58 408 java/lang/Exception // 63 82 408 java/lang/Exception // 82 317 408 java/lang/Exception // 321 325 408 java/lang/Exception // 342 350 408 java/lang/Exception // 353 380 408 java/lang/Exception } public static Bitmap createScaledBitmap(Bitmap paramBitmap, int paramInt1, int paramInt2, Bitmap.Config paramConfig) { Bitmap localBitmap = null; try { Paint localPaint = new Paint(); localPaint.setDither(false); localPaint.setAntiAlias(true); localPaint.setFilterBitmap(true); localBitmap = Bitmap.createBitmap(paramInt1, paramInt2, paramConfig); new Canvas(localBitmap).drawBitmap(paramBitmap, new Rect(0, 0, paramBitmap.getWidth(), paramBitmap.getHeight()), new Rect(0, 0, paramInt1, paramInt2), localPaint); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap cut(Bitmap paramBitmap, int paramInt1, int paramInt2, int paramInt3, int paramInt4, boolean paramBoolean) { Bitmap localBitmap = null; if (paramInt3 <= paramInt1) paramInt3 = paramInt1 + 1; if (paramInt4 < paramInt2) paramInt4 = paramInt2 + 1; int i = paramInt3 - paramInt1; int j = paramInt4 - paramInt2; try { localBitmap = Bitmap.createBitmap(i, j, paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); localPaint.setAntiAlias(true); localCanvas.drawBitmap(paramBitmap, new Rect(paramInt1, paramInt2, paramInt3, paramInt4), new Rect(0, 0, paramInt3 - paramInt1, paramInt4 - paramInt2), localPaint); if (paramBoolean) paramBitmap.recycle(); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap cutAndResizeRotate(Bitmap paramBitmap, int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6, boolean paramBoolean1, boolean paramBoolean2) { try { MTDebug.Print("cutAndResizeRotate DstW=" + paramInt1 + " DstH=" + paramInt2); MTDebug.Print("left=" + paramInt3 + " top=" + paramInt4 + " right" + paramInt5 + " bottom=" + paramInt6); MTDebug.Print("cutAndResizeRotate bmpw=" + paramBitmap.getWidth() + " bmph=" + paramBitmap.getHeight()); System.gc(); f = paramInt1 / (paramInt5 - paramInt3); if (f == 1.0F) localBitmap1 = Bitmap.createBitmap(paramInt1, paramInt2, paramBitmap.getConfig()); } catch (Exception localException1) { try { float f; Canvas localCanvas1 = new Canvas(localBitmap1); Paint localPaint1 = new Paint(); localPaint1.setAntiAlias(true); localPaint1.setDither(true); localPaint1.setFilterBitmap(true); localCanvas1.drawBitmap(paramBitmap, new Rect(paramInt3, paramInt4, paramInt5, paramInt6), new Rect(0, 0, paramInt1, paramInt2), localPaint1); if (paramBoolean1) { paramBitmap.recycle(); localObject2 = localBitmap1; while (true) { Bitmap localBitmap2; Bitmap.Config localConfig; try { System.gc(); return localObject2; if (f == 1.0F) break; MTDebug.Print("cutAndResizeRotate bmp.getWidth() * bmp.getHeight() <= 900 * 900"); localBitmap2 = Bitmap.createBitmap(paramInt5 - paramInt3, paramInt6 - paramInt4, paramBitmap.getConfig()); Canvas localCanvas2 = new Canvas(localBitmap2); Paint localPaint2 = new Paint(); localPaint2.setAntiAlias(true); localPaint2.setDither(true); localPaint2.setFilterBitmap(true); localCanvas2.drawBitmap(paramBitmap, -paramInt3, -paramInt4, localPaint2); localConfig = paramBitmap.getConfig(); if (!paramBoolean1) continue; paramBitmap.recycle(); if (!paramBoolean2) break label411; MTDebug.memeryUsed("cutAndResizeRotate0"); if (f == 1.0F) { localObject2 = localBitmap2; MTDebug.Print("FittingWindow copy"); MTDebug.memeryUsed("cutAndResizeRotate1"); continue; } } catch (Exception localException2) { localException2.printStackTrace(); return localObject2; } Bitmap localBitmap3 = createScaledBitmap(localBitmap2, paramInt1, paramInt2, localConfig); localObject2 = localBitmap3; localBitmap2.recycle(); continue; label411: localObject2 = localBitmap2; continue; localException1 = localException1; localObject1 = localException1; localObject2 = null; } } } catch (Exception localException3) { while (true) { Bitmap localBitmap1; Object localObject1 = localException3; Object localObject2 = localBitmap1; continue; localObject2 = null; continue; localObject2 = localBitmap1; } } } } public static Bitmap drawableToBitmap(Drawable paramDrawable) { Bitmap localBitmap = null; try { int i = paramDrawable.getIntrinsicWidth(); int j = paramDrawable.getIntrinsicHeight(); int k = paramDrawable.getOpacity(); localBitmap = null; if (k != -1); for (Bitmap.Config localConfig = Bitmap.Config.RGB_565; ; localConfig = Bitmap.Config.RGB_565) { localBitmap = Bitmap.createBitmap(i, j, localConfig); Canvas localCanvas = new Canvas(localBitmap); paramDrawable.setBounds(0, 0, paramDrawable.getIntrinsicWidth(), paramDrawable.getIntrinsicHeight()); paramDrawable.draw(localCanvas); return localBitmap; } } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static String getJpgOritation(String paramString) { try { String str = new ExifInterface(paramString).getAttribute("Orientation"); return str; } catch (IOException localIOException) { localIOException.printStackTrace(); } return ""; } public static Bitmap gray(Bitmap paramBitmap) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramBitmap.getWidth(), paramBitmap.getHeight(), paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); ColorMatrix localColorMatrix = new ColorMatrix(); localColorMatrix.setSaturation(0.0F); localPaint.setColorFilter(new ColorMatrixColorFilter(localColorMatrix)); localPaint.setAntiAlias(true); localCanvas.drawBitmap(paramBitmap, 0.0F, 0.0F, localPaint); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap hue(Bitmap paramBitmap, float paramFloat, boolean paramBoolean) { Bitmap localBitmap1 = null; try { localBitmap1 = Bitmap.createBitmap(paramBitmap.getWidth(), paramBitmap.getHeight(), paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap1); Paint localPaint = new Paint(); ColorMatrix localColorMatrix = new ColorMatrix(); int i = (int)(3.141592653589793D * (Math.min(180.0F, Math.max(-180.0F, paramFloat)) / 180.0F)); float f1 = (float)Math.cos(i); float f2 = (float)Math.sin(i); float[] arrayOfFloat = new float[20]; arrayOfFloat[0] = (0.213F + f1 * (1.0F - 0.213F) + f2 * -0.213F); arrayOfFloat[1] = (0.715F + f1 * -0.715F + f2 * -0.715F); arrayOfFloat[2] = (0.072F + f1 * -0.072F + f2 * (1.0F - 0.072F)); arrayOfFloat[3] = 0.0F; arrayOfFloat[4] = 0.0F; arrayOfFloat[5] = (0.213F + f1 * -0.213F + 0.143F * f2); arrayOfFloat[6] = (0.715F + f1 * (1.0F - 0.715F) + 0.14F * f2); arrayOfFloat[7] = (0.072F + f1 * -0.072F + -0.283F * f2); arrayOfFloat[8] = 0.0F; arrayOfFloat[9] = 0.0F; arrayOfFloat[10] = (0.213F + f1 * -0.213F + f2 * -(1.0F - 0.213F)); arrayOfFloat[11] = (0.715F + f1 * -0.715F + 0.715F * f2); arrayOfFloat[12] = (0.072F + f1 * (1.0F - 0.072F) + 0.072F * f2); arrayOfFloat[13] = 0.0F; arrayOfFloat[14] = 0.0F; arrayOfFloat[15] = 0.0F; arrayOfFloat[16] = 0.0F; arrayOfFloat[17] = 0.0F; arrayOfFloat[18] = 1.0F; arrayOfFloat[19] = 0.0F; localColorMatrix.set(arrayOfFloat); localPaint.setColorFilter(new ColorMatrixColorFilter(localColorMatrix)); localPaint.setAntiAlias(true); localPaint.setDither(false); localCanvas.drawBitmap(paramBitmap, 0.0F, 0.0F, localPaint); if (paramBoolean) { paramBitmap.recycle(); return localBitmap1; } } catch (Exception localException) { Bitmap localBitmap2 = localBitmap1; localException.printStackTrace(); return localBitmap2; } return localBitmap1; } public static Bitmap intARGB2Bimap(int[] paramArrayOfInt, int paramInt1, int paramInt2) { try { if (paramArrayOfInt.length != paramInt1 * paramInt2) { MTDebug.PrintError("bytesARGB2Bimap data.length=" + paramArrayOfInt.length + " w*h=" + paramInt1 * paramInt2); return null; } if (paramArrayOfInt.length > 0) { Bitmap localBitmap = Bitmap.createBitmap(paramInt1, paramInt2, MyData.mConfig); if (localBitmap == null) return null; localBitmap.setPixels(paramArrayOfInt, 0, paramInt1, 0, 0, paramInt1, paramInt2); return localBitmap; } } catch (Exception localException) { localException.printStackTrace(); } return null; } public static Bitmap mirror(Bitmap paramBitmap, int paramInt, boolean paramBoolean) { Bitmap localBitmap = null; try { MTDebug.Print("mirror kind=" + paramInt); localMatrix = new Matrix(); switch (paramInt) { case 1: localMatrix.preScale(-1.0F, 1.0F); case 2: while (paramBitmap.getConfig() == Bitmap.Config.RGB_565) { MTDebug.Print("mirror bmpSrc.getConfig() == Config.RGB_565"); localBitmap = Bitmap.createBitmap(paramBitmap, 0, 0, paramBitmap.getWidth(), paramBitmap.getHeight(), localMatrix, true); if (localBitmap.getConfig() != Bitmap.Config.RGB_565) break label232; MTDebug.Print("mirror mirrorPic.getConfig() == Config.RGB_565"); MTDebug.Print("mirrorPic w=" + localBitmap.getWidth() + " h=" + localBitmap.getHeight()); if (!paramBoolean) break label253; paramBitmap.recycle(); break label253; localMatrix.preScale(1.0F, -1.0F); } case 3: } } catch (Exception localException) { while (true) { Matrix localMatrix; localException.printStackTrace(); break label253; localMatrix.preScale(-1.0F, 1.0F); localMatrix.postScale(1.0F, -1.0F); break; if (paramBitmap.getConfig() != Bitmap.Config.ARGB_8888) continue; MTDebug.Print("mirror bmpSrc.getConfig() == Config.ARGB_8888"); continue; label232: if (localBitmap.getConfig() != Bitmap.Config.ARGB_8888) continue; MTDebug.Print("mirror mirrorPic.getConfig() == Config.ARGB_8888"); } return null; } label253: return localBitmap; } public static Bitmap resize(Bitmap paramBitmap, int paramInt1, int paramInt2, boolean paramBoolean) { Object localObject = null; try { int i = paramBitmap.getWidth(); localObject = null; if (paramInt1 == i) { int j = paramBitmap.getHeight(); localObject = null; if (paramInt2 == j) { localObject = paramBitmap.copy(MyData.mConfig, true); MTDebug.Print("FittingWindow copy"); } } while (paramBoolean) { paramBitmap.recycle(); return localObject; Bitmap localBitmap = createScaledBitmap(paramBitmap, paramInt1, paramInt2, paramBitmap.getConfig()); localObject = localBitmap; } } catch (Exception localException) { localException.printStackTrace(); } return (Bitmap)localObject; } public static Bitmap rotate(Bitmap paramBitmap, float paramFloat, boolean paramBoolean) { Bitmap localBitmap = null; if ((paramFloat == 0.0F) || (paramFloat == 360.0F)); try { localBitmap = paramBitmap.copy(paramBitmap.getConfig(), true); MTDebug.Print("FittingWindow copy"); while (paramBoolean) { paramBitmap.recycle(); return localBitmap; Matrix localMatrix = new Matrix(); localMatrix.preRotate(paramFloat); localBitmap = Bitmap.createBitmap(paramBitmap, 0, 0, paramBitmap.getWidth(), paramBitmap.getHeight(), localMatrix, true); MTDebug.printConfig(paramBitmap, "rotate src"); MTDebug.printConfig(localBitmap, "rotate bmpDst"); } } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap rotate90(Bitmap paramBitmap, boolean paramBoolean) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramBitmap.getHeight(), paramBitmap.getWidth(), paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); localPaint.setDither(false); localPaint.setAntiAlias(true); localPaint.setFilterBitmap(true); Matrix localMatrix = new Matrix(); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); localMatrix.preRotate(90.0F, i / 2, j / 2); localMatrix.postTranslate((j - i) / 2, -(j - i) / 2); localCanvas.drawBitmap(paramBitmap, localMatrix, localPaint); if (paramBoolean) paramBitmap.recycle(); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } public static Bitmap rotateAndResize(Bitmap paramBitmap, float paramFloat1, float paramFloat2) { Bitmap localBitmap1 = null; try { Matrix localMatrix = new Matrix(); localMatrix.preRotate(paramFloat1); localMatrix.preScale(paramFloat2, paramFloat2); if ((paramFloat2 == 1.0F) && ((paramFloat1 == 0.0F) || (paramFloat1 == 360.0F))) { localBitmap1 = paramBitmap.copy(MyData.mConfig, true); MTDebug.Print("FittingWindow copy"); return localBitmap1; } Bitmap localBitmap2 = Bitmap.createBitmap(paramBitmap, 0, 0, paramBitmap.getWidth(), paramBitmap.getHeight(), localMatrix, true); return localBitmap2; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap1; } public static Bitmap rotateDirect(Bitmap paramBitmap, float paramFloat, int paramInt1, int paramInt2, boolean paramBoolean) { Bitmap localBitmap1 = null; try { MTDebug.Print("rotateResize direct=" + paramFloat); if ((paramFloat == 0.0F) || (paramFloat == 360.0F)) { localBitmap1 = paramBitmap.copy(paramBitmap.getConfig(), true); MTDebug.Print("FittingWindow copy"); if (paramBoolean) { paramBitmap.recycle(); return localBitmap1; } } else { Matrix localMatrix = new Matrix(); boolean bool = paramFloat < 0.0F; localBitmap1 = null; if (bool) { MTDebug.Print("direct=" + paramFloat); localMatrix.preRotate(paramFloat); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); Bitmap localBitmap2 = Bitmap.createBitmap(paramBitmap, 0, 0, i, j, localMatrix, true); localBitmap1 = null; if (paramBoolean) { paramBitmap.recycle(); paramBitmap = null; } localBitmap1 = FittingWindow(localBitmap2, paramInt1, paramInt2, true); } MTDebug.printConfig(paramBitmap, "rotate src"); MTDebug.printConfig(localBitmap1, "rotate bmpDst"); return localBitmap1; } } catch (Exception localException) { localException.printStackTrace(); } return localBitmap1; } public static Bitmap rotateRect(Bitmap paramBitmap, float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) { Bitmap localBitmap = null; try { int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); int k = i / 2; int m = j / 2; float f1 = paramFloat1; if (f1 < 0.0F) (f1 + 360.0F); float f2 = (float)Math.atan(1.0F * j / i); MTDebug.printAvilableMemery2("rotateRect0"); localBitmap = rotate(paramBitmap, paramFloat1, false); MTDebug.printAvilableMemery2("rotateRect"); if (paramBoolean2) paramBitmap.recycle(); Rect localRect = new Rect(); int n = (i - localBitmap.getWidth()) / 2; int i1 = (j - localBitmap.getHeight()) / 2; MTDebug.Print("angle=" + paramFloat1); if (paramFloat1 < 0.0F) { paramFloat1 *= -1.0F; break label415; int i3; int i4; int i5; if (i < j) { int i2 = (int)(1.0F * i / 2.0F / Math.cos(f2 - 3.141592653589793D * paramFloat1 / 180.0D)); i3 = (int)(i2 * Math.cos(f2)); i4 = (int)(i2 * Math.sin(f2)); localRect.set(k - i3, m - i4, i3 + k, i4 + m); if (!paramBoolean1) break label394; i5 = j; } for (int i6 = i; ; i6 = j) { localBitmap = cutAndResizeRotate(localBitmap, i5, i6, localRect.left - n, localRect.top - i1, localRect.right - n, localRect.bottom - i1, true, paramBoolean3); if ((paramFloat2 == 0.0F) || (paramFloat2 == 360.0F)) break label454; return rotate(localBitmap, paramFloat2, true); int i7 = (int)(1.0F * j / 2.0F / Math.cos(f2 + 3.141592653589793D * paramFloat1 / 180.0D - 1.570796326794897D)); i3 = (int)(i7 * Math.cos(f2)); double d1 = i7; double d2 = Math.sin(f2); i4 = (int)(d1 * d2); break; label394: i5 = i; } } } catch (Exception localException) { localException.printStackTrace(); return localBitmap; } while (true) { label415: if (paramFloat1 <= 360.0F) { if (paramFloat1 > 180.0F) paramFloat1 = 360.0F - paramFloat1; if (paramFloat1 <= 90.0F) break; paramFloat1 = 180.0F - paramFloat1; break; label454: return localBitmap; } paramFloat1 -= 360.0F; } } public static Bitmap rotateResize(Bitmap paramBitmap, float paramFloat1, float paramFloat2, int paramInt1, int paramInt2, boolean paramBoolean) { try { MTDebug.Print("rotateResize direct=" + paramFloat1 + " degress=" + paramFloat2); if ((paramFloat2 == 0.0F) || (paramFloat2 == 360.0F)) { Bitmap localBitmap1 = paramBitmap.copy(paramBitmap.getConfig(), true); localObject2 = localBitmap1; } while (true) { Matrix localMatrix; Bitmap localBitmap3; try { MTDebug.Print("FittingWindow copy"); if (!paramBoolean) continue; paramBitmap.recycle(); return localObject2; localMatrix = new Matrix(); if (paramFloat1 == 0.0F) break label276; MTDebug.Print("direct=" + paramFloat1); localMatrix.preRotate(paramFloat1); int i = paramBitmap.getWidth(); int j = paramBitmap.getHeight(); Bitmap localBitmap2 = Bitmap.createBitmap(paramBitmap, 0, 0, i, j, localMatrix, true); if (!paramBoolean) continue; paramBitmap.recycle(); paramBitmap = null; localBitmap3 = FittingWindow(localBitmap2, paramInt1, paramInt2, true); if (paramFloat2 == 0.0F) break label269; StringBuilder localStringBuilder = new StringBuilder("degress="); MTDebug.Print(paramFloat2); localMatrix.reset(); localMatrix.preRotate(paramFloat2); Bitmap localBitmap4 = Bitmap.createBitmap(localBitmap3, 0, 0, localBitmap3.getWidth(), localBitmap3.getHeight(), localMatrix, true); localObject2 = localBitmap4; localBitmap3.recycle(); MTDebug.printConfig(paramBitmap, "rotate src"); MTDebug.printConfig((Bitmap)localObject2, "rotate bmpDst"); return localObject2; } catch (Exception localException2) { } localException2.printStackTrace(); return localObject2; label269: localObject2 = localBitmap3; continue; label276: localMatrix.reset(); localMatrix.preRotate(paramFloat2); int k = paramBitmap.getWidth(); int m = paramBitmap.getHeight(); Bitmap localBitmap5 = Bitmap.createBitmap(paramBitmap, 0, 0, k, m, localMatrix, true); localObject2 = localBitmap5; if (!paramBoolean) continue; paramBitmap.recycle(); paramBitmap = null; } } catch (Exception localException1) { while (true) { Object localObject1 = localException1; Object localObject2 = null; } } } public static Bitmap saturation(Bitmap paramBitmap, float paramFloat, boolean paramBoolean) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramBitmap.getWidth(), paramBitmap.getHeight(), paramBitmap.getConfig()); if (localBitmap.getConfig() == Bitmap.Config.RGB_565) MTDebug.Print("saturation bmpDst.getConfig() == Config.RGB_565"); while (true) { Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); ColorMatrix localColorMatrix = new ColorMatrix(); localColorMatrix.setSaturation(paramFloat); localPaint.setColorFilter(new ColorMatrixColorFilter(localColorMatrix)); localPaint.setAntiAlias(true); localPaint.setDither(false); localPaint.setFilterBitmap(true); localCanvas.drawBitmap(paramBitmap, 0.0F, 0.0F, localPaint); if (!paramBoolean) break; paramBitmap.recycle(); return localBitmap; if (localBitmap.getConfig() != Bitmap.Config.ARGB_8888) continue; MTDebug.Print("saturation bmpDst.getConfig() == Config.ARGB_8888"); } } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } // ERROR // public static void savePic(String paramString, Bitmap paramBitmap, int paramInt) { // Byte code: // 0: new 449 java/io/File // 3: dup // 4: aload_0 // 5: invokespecial 450 java/io/File:<init> (Ljava/lang/String;)V // 8: astore_3 // 9: new 1032 java/io/BufferedOutputStream // 12: dup // 13: new 1034 java/io/FileOutputStream // 16: dup // 17: aload_3 // 18: invokespecial 1035 java/io/FileOutputStream:<init> (Ljava/io/File;)V // 21: invokespecial 1038 java/io/BufferedOutputStream:<init> (Ljava/io/OutputStream;)V // 24: astore 4 // 26: iload_2 // 27: iconst_1 // 28: if_icmpne +32 -> 60 // 31: aload_1 // 32: getstatic 1044 android/graphics/Bitmap$CompressFormat:JPEG Landroid/graphics/Bitmap$CompressFormat; // 35: bipush 85 // 37: aload 4 // 39: invokevirtual 1048 android/graphics/Bitmap:compress (Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z // 42: pop // 43: ldc_w 1050 // 46: invokestatic 168 com/mt/mtxx/mtxx/MTDebug:Print (Ljava/lang/String;)V // 49: aload 4 // 51: invokevirtual 1053 java/io/BufferedOutputStream:flush ()V // 54: aload 4 // 56: invokevirtual 1054 java/io/BufferedOutputStream:close ()V // 59: return // 60: iload_2 // 61: iconst_2 // 62: if_icmpne -13 -> 49 // 65: aload_1 // 66: getstatic 1057 android/graphics/Bitmap$CompressFormat:PNG Landroid/graphics/Bitmap$CompressFormat; // 69: bipush 100 // 71: aload 4 // 73: invokevirtual 1048 android/graphics/Bitmap:compress (Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z // 76: pop // 77: goto -28 -> 49 // 80: astore 5 // 82: aload 5 // 84: invokevirtual 485 java/io/FileNotFoundException:printStackTrace ()V // 87: return // 88: astore 7 // 90: aload 7 // 92: invokevirtual 408 java/io/IOException:printStackTrace ()V // 95: return // // Exception table: // from to target type // 9 26 80 java/io/FileNotFoundException // 31 49 80 java/io/FileNotFoundException // 49 59 80 java/io/FileNotFoundException // 65 77 80 java/io/FileNotFoundException // 90 95 80 java/io/FileNotFoundException // 49 59 88 java/io/IOException } // ERROR // public static void savePic2(String paramString, Bitmap paramBitmap, int paramInt) { // Byte code: // 0: new 449 java/io/File // 3: dup // 4: aload_0 // 5: invokespecial 450 java/io/File:<init> (Ljava/lang/String;)V // 8: astore_3 // 9: new 1034 java/io/FileOutputStream // 12: dup // 13: aload_3 // 14: invokespecial 1035 java/io/FileOutputStream:<init> (Ljava/io/File;)V // 17: astore 4 // 19: iload_2 // 20: iconst_1 // 21: if_icmpne +41 -> 62 // 24: aload_1 // 25: getstatic 256 com/mt/mtxx/mtxx/MyData:mConfig Landroid/graphics/Bitmap$Config; // 28: iconst_1 // 29: invokevirtual 247 android/graphics/Bitmap:copy (Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; // 32: astore 9 // 34: aload_1 // 35: invokevirtual 265 android/graphics/Bitmap:recycle ()V // 38: aload 9 // 40: getstatic 1044 android/graphics/Bitmap$CompressFormat:JPEG Landroid/graphics/Bitmap$CompressFormat; // 43: bipush 85 // 45: aload 4 // 47: invokevirtual 1048 android/graphics/Bitmap:compress (Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z // 50: pop // 51: aload 4 // 53: invokevirtual 1059 java/io/FileOutputStream:flush ()V // 56: aload 4 // 58: invokevirtual 1060 java/io/FileOutputStream:close ()V // 61: return // 62: iload_2 // 63: iconst_2 // 64: if_icmpne -13 -> 51 // 67: aload_1 // 68: getstatic 1057 android/graphics/Bitmap$CompressFormat:PNG Landroid/graphics/Bitmap$CompressFormat; // 71: bipush 100 // 73: aload 4 // 75: invokevirtual 1048 android/graphics/Bitmap:compress (Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z // 78: pop // 79: goto -28 -> 51 // 82: astore 5 // 84: aload 5 // 86: astore 6 // 88: aload 6 // 90: invokevirtual 485 java/io/FileNotFoundException:printStackTrace ()V // 93: return // 94: astore 8 // 96: aload 8 // 98: invokevirtual 408 java/io/IOException:printStackTrace ()V // 101: return // 102: astore 11 // 104: aload 11 // 106: astore 6 // 108: goto -20 -> 88 // // Exception table: // from to target type // 24 51 82 java/io/FileNotFoundException // 51 61 82 java/io/FileNotFoundException // 67 79 82 java/io/FileNotFoundException // 96 101 82 java/io/FileNotFoundException // 51 61 94 java/io/IOException // 9 19 102 java/io/FileNotFoundException } public static void savePicHigh(String paramString, Bitmap paramBitmap, int paramInt) { } public static Bitmap scale(Bitmap paramBitmap, float paramFloat, boolean paramBoolean) { Object localObject = null; try { new Matrix().postScale(paramFloat, paramFloat); boolean bool = paramFloat < 1.0F; localObject = null; if (!bool) { localObject = paramBitmap.copy(MyData.mConfig, true); MTDebug.Print("FittingWindow copy"); } while (paramBoolean) { paramBitmap.recycle(); return localObject; Bitmap localBitmap = createScaledBitmap(paramBitmap, (int)(paramFloat * paramBitmap.getWidth()), (int)(paramFloat * paramBitmap.getHeight()), paramBitmap.getConfig()); localObject = localBitmap; } } catch (Exception localException) { localException.printStackTrace(); } return (Bitmap)localObject; } public static Bitmap test(Bitmap paramBitmap) { while (true) { try { byte[] arrayOfByte = bitmap2ByteARGB(paramBitmap); int i = 0; int j = 0; if (i >= paramBitmap.getHeight()) { return bytesARGB2Bimap(arrayOfByte, paramBitmap.getWidth(), paramBitmap.getHeight()); if (k < paramBitmap.getWidth()) continue; i++; continue; arrayOfByte[(j + 0)] = 0; arrayOfByte[(j + 1)] = 0; j += 4; k++; continue; } } catch (Exception localException) { localException.printStackTrace(); return null; } int k = 0; } } public static Bitmap toARGB(Bitmap paramBitmap) { Bitmap localBitmap = null; try { localBitmap = Bitmap.createBitmap(paramBitmap.getWidth(), paramBitmap.getHeight(), paramBitmap.getConfig()); Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(); localPaint.setAntiAlias(true); localCanvas.drawBitmap(paramBitmap, 0.0F, 0.0F, localPaint); return localBitmap; } catch (Exception localException) { localException.printStackTrace(); } return localBitmap; } }
看到了JNI就知道它相关的这些东西最终都是通过C去实现的。
public native void AutoWhiteBalance(byte[] paramArrayOfByte, int paramInt1, int paramInt2);
C它最终打包会生成一个.so.这个.so里面的东西你想猜到它的C是怎么写的还是挺麻烦的。所以说呢咱们想看一看它的特效是怎么实现的愿望基本上就泡汤了。但是呢虽说咱们不知道它是怎么实现的,但是咱们可以用。只需要知道这里面的方法传进去的参数都是什么样的含义,那我也可以拿一张图片然后把对应的参数给它传进去。传进去之后我已经拿到了它native方法的所有的声明。我拿着这个.so文件和这个JNI的类,只要我参数传的没问题咱们也可以实现相同的效果。
如果你想把这个.so放到x86的架构下这样的一个设备,你的.so不能运行.它只支持arm平台的.所以咱们就不能在X86运行它了.
这么多效果咱们就挑一个来.有一个参数比较少的.
public native void StyleLomoB(int[] paramArrayOfInt, int paramInt1, int paramInt2);
创建一个安卓工程,把图片放在SD卡,把图片加载进来,加载进来之后把它转换成一个Bitmap对象,通过这个Bitmap对象就可以获取到一个int类型的数组.把这个数组丢给它,再获取一下图片的高度,获取一下图片的宽度.这样咱们就可以调用这个StyleLomoB.看一下它的返回值是void,说明直接修改的就是这个int类型的数组.实际上咱们都是一个数码的照片,
安卓中每一个像素都对应着ARGB_8888四个byte.就是说一个像素正好就是一个int类型的元素.用一个int类型的元素来表示一个像素的颜色信息.拿着这个Bitmap获得这个int类型的数组,实际上这个数组就保存了每一个像素的颜色信息.你丢进去之后它直接对这个数组进行了处理.这个函数运行完了实际上你的这个数组里面的像素所有的像素实际上已经带着特效了.你再拿着这个数组再给它创建出一个新的Bitmap,再给它还原成一个Bitmap.这个时候咱们拿着这个Bitmap再展示出来.这个时候实际上已经加了特效了.愿意保存你再把这个Bitmap给它存起来.特效的效果也可以给它存成具体的文件.