Java 类android.graphics.BitmapFactory.Options 实例源码

项目:GitHub    文件:ImageLoaderUtil.java   
/**获取配置
 * @param cornerRadiusSize
 * @param defaultImageResId
 * @return
 */
@SuppressWarnings("deprecation")
private static DisplayImageOptions getOption(int cornerRadiusSize, int defaultImageResId) {
    Options options0 = new Options();
    options0.inPreferredConfig = Bitmap.Config.RGB_565;

    DisplayImageOptions.Builder builder = new DisplayImageOptions.Builder();
    if(defaultImageResId > 0) {
        try {
            builder.showImageForEmptyUri(defaultImageResId)
            .showImageOnLoading(defaultImageResId)
            .showImageOnFail(defaultImageResId);
        } catch (Exception e) {
            Log.e(TAG, "getOption  try {builder.showImageForEmptyUri(defaultImageResId) ..." +
                    " >> } catch (Exception e) { \n" + e.getMessage());
        }
    }
    if (cornerRadiusSize > 0) {
        builder.displayer(new RoundedBitmapDisplayer(cornerRadiusSize));
    }

    return builder.cacheInMemory(true).cacheOnDisc(true).decodingOptions(options0).build();
}
项目:GitHub    文件:ImageDecodingInfo.java   
public ImageDecodingInfo(String imageKey, String imageUri, String originalImageUri, ImageSize targetSize, ViewScaleType viewScaleType,
                         ImageDownloader downloader, DisplayImageOptions displayOptions) {
    this.imageKey = imageKey;
    this.imageUri = imageUri;
    this.originalImageUri = originalImageUri;
    this.targetSize = targetSize;

    this.imageScaleType = displayOptions.getImageScaleType();
    this.viewScaleType = viewScaleType;

    this.downloader = downloader;
    this.extraForDownloader = displayOptions.getExtraForDownloader();

    considerExifParams = displayOptions.isConsiderExifParams();
    decodingOptions = new Options();
    copyOptions(displayOptions.getDecodingOptions(), decodingOptions);
}
项目:GitHub    文件:BaseImageDecoder.java   
protected Options prepareDecodingOptions(ImageSize imageSize, ImageDecodingInfo decodingInfo) {
    ImageScaleType scaleType = decodingInfo.getImageScaleType();
    int scale;
    if (scaleType == ImageScaleType.NONE) {
        scale = 1;
    } else if (scaleType == ImageScaleType.NONE_SAFE) {
        scale = ImageSizeUtils.computeMinImageSampleSize(imageSize);
    } else {
        ImageSize targetSize = decodingInfo.getTargetSize();
        boolean powerOf2 = scaleType == ImageScaleType.IN_SAMPLE_POWER_OF_2;
        scale = ImageSizeUtils.computeImageSampleSize(imageSize, targetSize, decodingInfo.getViewScaleType(), powerOf2);
    }
    if (scale > 1 && loggingEnabled) {
        L.d(LOG_SUBSAMPLE_IMAGE, imageSize, imageSize.scaleDown(scale), scale, decodingInfo.getImageKey());
    }

    Options decodingOptions = decodingInfo.getDecodingOptions();
    decodingOptions.inSampleSize = scale;
    return decodingOptions;
}
项目:Mvp-Retrofit-Rxjava-Rxbus    文件:BitmapUtils.java   
public static Bitmap getScaleBitmap(Context context, String imagePath,
        int maxWidth) {
    try {
        Options bitmapOptions = new Options();
        bitmapOptions.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(imagePath, bitmapOptions);
        int imageWidth = bitmapOptions.outWidth;

        if (maxWidth == 0) {
            maxWidth = DevUtils.getScreenWidth(context);
        } else if (maxWidth < 0) {
            maxWidth = imageWidth;
        }

        if (imageWidth < maxWidth) {
            maxWidth = imageWidth;
        }

        Bitmap bitmap = createScaleBitmapByWidthIfNeed(imagePath, maxWidth);
        return bitmap;
    } catch (OutOfMemoryError e) {
        Log.e("BitmapUtils", "compressBitmap", e);
        return null;
    }
}
项目:APIJSON-Android-RxJava    文件:ImageLoaderUtil.java   
/**获取配置
 * @param cornerRadiusSize
 * @param defaultImageResId
 * @return
 */
@SuppressWarnings("deprecation")
private static DisplayImageOptions getOption(int cornerRadiusSize, int defaultImageResId) {
    Options options0 = new Options();
    options0.inPreferredConfig = Bitmap.Config.RGB_565;

    DisplayImageOptions.Builder builder = new DisplayImageOptions.Builder();
    if(defaultImageResId > 0) {
        try {
            builder.showImageForEmptyUri(defaultImageResId)
            .showImageOnLoading(defaultImageResId)
            .showImageOnFail(defaultImageResId);
        } catch (Exception e) {
            Log.e(TAG, "getOption  try {builder.showImageForEmptyUri(defaultImageResId) ..." +
                    " >> } catch (Exception e) { \n" + e.getMessage());
        }
    }
    if (cornerRadiusSize > 0) {
        builder.displayer(new RoundedBitmapDisplayer(cornerRadiusSize));
    }

    return builder.cacheInMemory(true).cacheOnDisc(true).decodingOptions(options0).build();
}
项目:AppCommonFrame    文件:BitmapUtil.java   
/**
 * 从系统的asset中读取一张图片 . <br>
 * @author liulongzhenhai 2012-8-1 下午5:21:12 <br>
 * @param context 上下文
 * @param fileName 文件相对路劲
 * @param density Options.inDensity的设置,在一些情况下,需要制定.否则,会变形
 * @return 返回图片
 */
public static Bitmap getImageFromAssetFile(final Context context, final String fileName, final int density) {
    if (TextUtils.isEmpty(fileName)) {
        return null;
    }
    Bitmap image = null;
    try {
        final AssetManager am = context.getAssets();
        final InputStream is = am.open(fileName);
        final Options o = new Options();
        o.inDensity = density;
        image = BitmapFactory.decodeStream(is, null, o);
        is.close();
    } catch (final Exception e) {
    }
    return image;
}
项目:letv    文件:ImageDecodingInfo.java   
private void copyOptions(Options srcOptions, Options destOptions) {
    destOptions.inDensity = srcOptions.inDensity;
    destOptions.inDither = srcOptions.inDither;
    destOptions.inInputShareable = srcOptions.inInputShareable;
    destOptions.inJustDecodeBounds = srcOptions.inJustDecodeBounds;
    destOptions.inPreferredConfig = srcOptions.inPreferredConfig;
    destOptions.inPurgeable = srcOptions.inPurgeable;
    destOptions.inSampleSize = srcOptions.inSampleSize;
    destOptions.inScaled = srcOptions.inScaled;
    destOptions.inScreenDensity = srcOptions.inScreenDensity;
    destOptions.inTargetDensity = srcOptions.inTargetDensity;
    destOptions.inTempStorage = srcOptions.inTempStorage;
    if (VERSION.SDK_INT >= 10) {
        copyOptions10(srcOptions, destOptions);
    }
    if (VERSION.SDK_INT >= 11) {
        copyOptions11(srcOptions, destOptions);
    }
}
项目:GCSApp    文件:BitmapUtil.java   
/**
 * @description:解析Bitmap的公用方法.注意各个方法的参数必须要有options
 * @author:hui-ye
 * @param path
 * @param data
 * @param context
 * @param uri
 * @param options
 * @return:
 */

public static Bitmap decode(String path, byte[] data, Context context, Uri uri,
                            Options options) throws Exception {
    Bitmap bitmap = null;
    if (path != null) {
        bitmap = BitmapFactory.decodeFile(path, options);
    } else if (data != null) {
        BitmapFactory.decodeByteArray(data, 0, data.length, options);
    } else if (uri != null) {
        // uri不为空的时候context也不要为空.:ContentResolver;Uri内容解析器
        ContentResolver resolver = context.getContentResolver();
        InputStream is;
        is = resolver.openInputStream(uri);
        bitmap = BitmapFactory.decodeStream(is, null, options);
    }
    System.gc();
    return bitmap;
}
项目:boohee_v5.6    文件:BitmapUtils.java   
public static Options getBitmapOptions(byte[] bArr) {
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeByteArray(bArr, 0, bArr.length, options);
    int ceil = (int) Math.ceil((double) (options.outWidth / UMImage.MAX_WIDTH));
    int ceil2 = (int) Math.ceil((double) (options.outHeight / UMImage.MAX_HEIGHT));
    if (ceil2 <= 1 || ceil <= 1) {
        if (ceil2 > 2) {
            options.inSampleSize = ceil2;
        } else if (ceil > 2) {
            options.inSampleSize = ceil;
        }
    } else if (ceil2 > ceil) {
        options.inSampleSize = ceil2;
    } else {
        options.inSampleSize = ceil;
    }
    options.inJustDecodeBounds = false;
    return options;
}
项目:letv    文件:BaseImageDecoder.java   
protected Options prepareDecodingOptions(ImageSize imageSize, ImageDecodingInfo decodingInfo) {
    int scale;
    ImageScaleType scaleType = decodingInfo.getImageScaleType();
    if (scaleType == ImageScaleType.NONE) {
        scale = 1;
    } else if (scaleType == ImageScaleType.NONE_SAFE) {
        scale = ImageSizeUtils.computeMinImageSampleSize(imageSize);
    } else {
        boolean powerOf2;
        ImageSize targetSize = decodingInfo.getTargetSize();
        if (scaleType == ImageScaleType.IN_SAMPLE_POWER_OF_2) {
            powerOf2 = true;
        } else {
            powerOf2 = false;
        }
        scale = ImageSizeUtils.computeImageSampleSize(imageSize, targetSize, decodingInfo.getViewScaleType(), powerOf2);
    }
    if (scale > 1 && this.loggingEnabled) {
        L.d(LOG_SUBSAMPLE_IMAGE, imageSize, imageSize.scaleDown(scale), Integer.valueOf(scale), decodingInfo.getImageKey());
    }
    Options decodingOptions = decodingInfo.getDecodingOptions();
    decodingOptions.inSampleSize = scale;
    return decodingOptions;
}
项目:letv    文件:RoundImageView.java   
public Bitmap decodeAbtoBm(byte[] b, int actualSize) {
    System.gc();
    Runtime.getRuntime().gc();
    Options oo = new Options();
    oo.inJustDecodeBounds = true;
    BitmapFactory.decodeByteArray(b, 0, b.length, oo);
    int scale = 1;
    while ((oo.outWidth / scale) / 2 >= actualSize && (oo.outHeight / scale) / 2 >= actualSize) {
        scale *= 2;
    }
    Options o2 = new Options();
    o2.inSampleSize = scale;
    o2.inPurgeable = true;
    o2.inInputShareable = true;
    Bitmap bm = BitmapFactory.decodeByteArray(b, 0, b.length, o2);
    System.gc();
    Runtime.getRuntime().gc();
    return bm;
}
项目:letv    文件:FileUtils.java   
public static Bitmap getBitmapByPath(String filename) {
    if (!checkFileIsEnabledPath(filename)) {
        return null;
    }
    Options newOpts = new Options();
    newOpts.inJustDecodeBounds = true;
    Bitmap bitmap = BitmapFactory.decodeFile(filename, newOpts);
    int w = newOpts.outWidth;
    int h = newOpts.outHeight;
    if (bitmap != null) {
        bitmap.recycle();
    }
    int be = 1;
    if (w > h && ((float) w) > 300.0f) {
        be = (int) (((float) newOpts.outWidth) / 300.0f);
    } else if (w < h && ((float) h) > 400.0f) {
        be = (int) (((float) newOpts.outHeight) / 400.0f);
    }
    if (be <= 0) {
        be = 1;
    }
    Options newOpts2 = new Options();
    newOpts2.inSampleSize = be;
    newOpts2.inJustDecodeBounds = false;
    return BitmapFactory.decodeFile(filename, newOpts2);
}
项目:letv    文件:FileUtils.java   
private static int computeInitialSampleSize(Options options, int minSideLength, int maxNumOfPixels) {
    double w = (double) options.outWidth;
    double h = (double) options.outHeight;
    int lowerBound = maxNumOfPixels == -1 ? 1 : (int) Math.ceil(Math.sqrt((w * h) / ((double) maxNumOfPixels)));
    int upperBound = minSideLength == -1 ? 128 : (int) Math.min(Math.floor(w / ((double) minSideLength)), Math.floor(h / ((double) minSideLength)));
    if (upperBound < lowerBound) {
        return lowerBound;
    }
    if (maxNumOfPixels == -1 && minSideLength == -1) {
        return 1;
    }
    if (minSideLength != -1) {
        return upperBound;
    }
    return lowerBound;
}
项目:letv    文件:a.java   
private static final boolean b(String str, int i, int i2) {
    if (TextUtils.isEmpty(str)) {
        return false;
    }
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(str, options);
    int i3 = options.outWidth;
    int i4 = options.outHeight;
    if (options.mCancel || options.outWidth == -1 || options.outHeight == -1) {
        return false;
    }
    int i5 = i3 > i4 ? i3 : i4;
    if (i3 >= i4) {
        i3 = i4;
    }
    f.b("AsynScaleCompressImage", "longSide=" + i5 + "shortSide=" + i3);
    options.inPreferredConfig = Config.RGB_565;
    if (i5 > i2 || i3 > i) {
        return true;
    }
    return false;
}
项目:letv    文件:ImageActivity.java   
private Bitmap a(String str) throws IOException {
    int i = 1;
    Options options = new Options();
    options.inJustDecodeBounds = true;
    Uri parse = Uri.parse(str);
    InputStream openInputStream = getContentResolver().openInputStream(parse);
    if (openInputStream == null) {
        return null;
    }
    BitmapFactory.decodeStream(openInputStream, null, options);
    openInputStream.close();
    int i2 = options.outWidth;
    int i3 = options.outHeight;
    while (i2 * i3 > 4194304) {
        i2 /= 2;
        i3 /= 2;
        i *= 2;
    }
    options.inJustDecodeBounds = false;
    options.inSampleSize = i;
    return BitmapFactory.decodeStream(getContentResolver().openInputStream(parse), null, options);
}
项目:letv    文件:IconRequest.java   
public static IconRequest build(Context context, String iconHash) {
    if (iconHash == null) {
        return null;
    }
    try {
        int iconId = CommonUtils.getAppIconResourceId(context);
        Fabric.getLogger().d(Fabric.TAG, "App icon resource ID is " + iconId);
        Options options = new Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(context.getResources(), iconId, options);
        return new IconRequest(iconHash, iconId, options.outWidth, options.outHeight);
    } catch (Exception e) {
        Fabric.getLogger().e(Fabric.TAG, "Failed to load icon", e);
        return null;
    }
}
项目:android-project-gallery    文件:ImageDecodingInfo.java   
public ImageDecodingInfo(String imageKey, String imageUri, ImageSize targetSize, ViewScaleType viewScaleType,
                         ImageDownloader downloader, DisplayImageOptions displayOptions) {
    this.imageKey = imageKey;
    this.imageUri = imageUri;
    this.targetSize = targetSize;

    this.imageScaleType = displayOptions.getImageScaleType();
    this.viewScaleType = viewScaleType;

    this.downloader = downloader;
    this.extraForDownloader = displayOptions.getExtraForDownloader();

    considerExifParams = displayOptions.isConsiderExifParams();
    decodingOptions = new Options();
    copyOptions(displayOptions.getDecodingOptions(), decodingOptions);
}
项目:boohee_v5.6    文件:PrintHelperKitkat.java   
private Bitmap loadBitmap(Uri uri, Options o) throws FileNotFoundException {
    if (uri == null || this.mContext == null) {
        throw new IllegalArgumentException("bad argument to loadBitmap");
    }
    InputStream is = null;
    try {
        is = this.mContext.getContentResolver().openInputStream(uri);
        Bitmap decodeStream = BitmapFactory.decodeStream(is, null, o);
        if (is != null) {
            try {
                is.close();
            } catch (IOException t) {
                Log.w(LOG_TAG, "close fail ", t);
            }
        }
        return decodeStream;
    } catch (Throwable th) {
        if (is != null) {
            try {
                is.close();
            } catch (IOException t2) {
                Log.w(LOG_TAG, "close fail ", t2);
            }
        }
    }
}
项目:GifImageLoader    文件:ImageDecodingInfo.java   
public ImageDecodingInfo(String imageKey, String imageUri, String originalImageUri, ImageSize targetSize, ViewScaleType viewScaleType,
                         ImageDownloader downloader, DisplayImageOptions displayOptions) {
    this.imageKey = imageKey;
    this.imageUri = imageUri;
    this.originalImageUri = originalImageUri;
    this.targetSize = targetSize;

    this.imageScaleType = displayOptions.getImageScaleType();
    this.viewScaleType = viewScaleType;

    this.downloader = downloader;
    this.extraForDownloader = displayOptions.getExtraForDownloader();

    considerExifParams = displayOptions.isConsiderExifParams();
    decodingOptions = new Options();
    copyOptions(displayOptions.getDecodingOptions(), decodingOptions);
}
项目:GifImageLoader    文件:BaseImageDecoder.java   
protected Options prepareDecodingOptions(ImageSize imageSize, ImageDecodingInfo decodingInfo) {
    ImageScaleType scaleType = decodingInfo.getImageScaleType();
    int scale;
    if (scaleType == ImageScaleType.NONE) {
        scale = 1;
    } else if (scaleType == ImageScaleType.NONE_SAFE) {
        scale = ImageSizeUtils.computeMinImageSampleSize(imageSize);
    } else {
        ImageSize targetSize = decodingInfo.getTargetSize();
        boolean powerOf2 = scaleType == ImageScaleType.IN_SAMPLE_POWER_OF_2;
        scale = ImageSizeUtils.computeImageSampleSize(imageSize, targetSize, decodingInfo.getViewScaleType(), powerOf2);
    }
    if (scale > 1 && loggingEnabled) {
        L.d(LOG_SUBSAMPLE_IMAGE, imageSize, imageSize.scaleDown(scale), scale, decodingInfo.getImageKey());
    }

    Options decodingOptions = decodingInfo.getDecodingOptions();
    decodingOptions.inSampleSize = scale;
    return decodingOptions;
}
项目:FreeStreams-TVLauncher    文件:BitmapUtil.java   
/**
 * 计算缩放比例
 * @param options
 * @param reqWidth
 * 目标宽
 * @param reqHeight
 * 目标高
 * @return
 */
private int calculateInSampleSize(Options options,
        int reqWidth, int reqHeight) {

    // Raw height and width of image
    final int height = options.outHeight;
    final int width = options.outWidth;
    int inSampleSize = 1;
    if (reqWidth == 0 || reqHeight == 0) {
        return inSampleSize;
    }
    if (height > reqHeight || width > reqWidth) {
        if (width > height) {
            inSampleSize = Math.round((float) height / (float) reqHeight);
        } else {
            inSampleSize = Math.round((float) width / (float) reqWidth);
        }
    }

    Log.d("", "原图尺寸:" + width + "x" + height + ",实际尺寸:" + reqWidth + "x"
            + reqHeight + ",inSampleSize = " + inSampleSize);
    return inSampleSize;
}
项目:MontageCam    文件:BitmapUtils.java   
public static Bitmap getImageCompress(final String srcPath) {
    Options newOpts = new Options();
    // 开始读入图片,此时把options.inJustDecodeBounds 设回true了
    newOpts.inJustDecodeBounds = true;
    Bitmap bitmap = BitmapFactory.decodeFile(srcPath, newOpts);// 此时返回bm为空

    newOpts.inJustDecodeBounds = false;
    int w = newOpts.outWidth;
    int h = newOpts.outHeight;
    // 现在主流手机比较多是800*480分辨率,所以高和宽我们设置为
    float hh = 800f;// 这里设置高度为800f
    float ww = 480f;// 这里设置宽度为480f
    // 缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
    int be = 1;// be=1表示不缩放
    if (w > h && w > ww) {// 如果宽度大的话根据宽度固定大小缩放
        be = (int) (newOpts.outWidth / ww);
    } else if (w < h && h > hh) {// 如果高度高的话根据宽度固定大小缩放
        be = (int) (newOpts.outHeight / hh);
    }
    if (be <= 0) be = 1;
    newOpts.inSampleSize = be;// 设置缩放比例
    // 重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了
    bitmap = BitmapFactory.decodeFile(srcPath, newOpts);
    return compressImage(bitmap);// 压缩好比例大小后再进行质量压缩
}
项目:MontageCam    文件:BitmapUtils.java   
public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int
        reqHeight) {
    // Raw height and width of image
    final int height = options.outHeight;
    final int width = options.outWidth;
    int inSampleSize = 1;

    if (height > reqHeight || width > reqWidth) {

        final int halfHeight = height / 2;
        final int halfWidth = width / 2;

        // Calculate the largest inSampleSize value that is a power of 2 and keeps both
        // height and width larger than the requested height and width.
        while ((halfHeight / inSampleSize) >= reqHeight && (halfWidth / inSampleSize) >=
                reqWidth) {
            inSampleSize *= 2;
        }
    }

    return inSampleSize;
}
项目:boohee_v5.6    文件:BaseImageDecoder.java   
protected Options prepareDecodingOptions(ImageSize imageSize, ImageDecodingInfo decodingInfo) {
    int scale;
    ImageScaleType scaleType = decodingInfo.getImageScaleType();
    if (scaleType == ImageScaleType.NONE) {
        scale = 1;
    } else if (scaleType == ImageScaleType.NONE_SAFE) {
        scale = ImageSizeUtils.computeMinImageSampleSize(imageSize);
    } else {
        boolean powerOf2;
        ImageSize targetSize = decodingInfo.getTargetSize();
        if (scaleType == ImageScaleType.IN_SAMPLE_POWER_OF_2) {
            powerOf2 = true;
        } else {
            powerOf2 = false;
        }
        scale = ImageSizeUtils.computeImageSampleSize(imageSize, targetSize, decodingInfo
                .getViewScaleType(), powerOf2);
    }
    if (scale > 1 && this.loggingEnabled) {
        L.d(LOG_SUBSAMPLE_IMAGE, imageSize, imageSize.scaleDown(scale), Integer.valueOf
                (scale), decodingInfo.getImageKey());
    }
    Options decodingOptions = decodingInfo.getDecodingOptions();
    decodingOptions.inSampleSize = scale;
    return decodingOptions;
}
项目:boohee_v5.6    文件:a.java   
private static final boolean b(String str, int i, int i2) {
    if (TextUtils.isEmpty(str)) {
        return false;
    }
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(str, options);
    int i3 = options.outWidth;
    int i4 = options.outHeight;
    if (options.mCancel || options.outWidth == -1 || options.outHeight == -1) {
        return false;
    }
    int i5 = i3 > i4 ? i3 : i4;
    if (i3 >= i4) {
        i3 = i4;
    }
    f.b("AsynScaleCompressImage", "longSide=" + i5 + "shortSide=" + i3);
    options.inPreferredConfig = Config.RGB_565;
    if (i5 > i2 || i3 > i) {
        return true;
    }
    return false;
}
项目:ImageLoaderSupportGif    文件:ImageDecodingInfo.java   
public ImageDecodingInfo(String imageKey, String imageUri, String originalImageUri, ImageSize targetSize, ViewScaleType viewScaleType,
                         ImageDownloader downloader, DisplayImageOptions displayOptions) {
    this.imageKey = imageKey;
    this.imageUri = imageUri;
    this.originalImageUri = originalImageUri;
    this.targetSize = targetSize;

    this.imageScaleType = displayOptions.getImageScaleType();
    this.viewScaleType = viewScaleType;

    this.downloader = downloader;
    this.extraForDownloader = displayOptions.getExtraForDownloader();

    considerExifParams = displayOptions.isConsiderExifParams();
    decodingOptions = new Options();
    copyOptions(displayOptions.getDecodingOptions(), decodingOptions);
}
项目:boohee_v5.6    文件:e.java   
public static Bitmap c(String str) {
    int i = 1;
    Options options = new Options();
    options.inJustDecodeBounds = true;
    options.inDither = false;
    options.inPurgeable = true;
    options.inInputShareable = true;
    options.inPreferredConfig = Config.RGB_565;
    BitmapFactory.decodeFile(str, options);
    if (options.outHeight > 200 || options.outWidth > 200) {
        i = Math.min(Math.round(((float) options.outHeight) / 200.0f), Math.round(((float)
                options.outWidth) / 200.0f));
    }
    options.inJustDecodeBounds = false;
    options.inSampleSize = i;
    return BitmapFactory.decodeFile(str, options).copy(Config.ARGB_8888, false);
}
项目:boohee_v5.6    文件:BitmapUtils.java   
private static int caculateInSampleSize(Options options, int rqsW, int rqsH) {
    int height = options.outHeight;
    int width = options.outWidth;
    int inSampleSize = 1;
    if (rqsW == 0 || rqsH == 0) {
        return 1;
    }
    if (height > rqsH || width > rqsW) {
        int heightRatio = Math.round(((float) height) / ((float) rqsH));
        int widthRatio = Math.round(((float) width) / ((float) rqsW));
        if (heightRatio < widthRatio) {
            inSampleSize = heightRatio;
        } else {
            inSampleSize = widthRatio;
        }
    }
    return inSampleSize;
}
项目:boohee_v5.6    文件:BitmapUtil.java   
private static int calculateInSampleSize(Options options, int reqWidth, int reqHeight) {
    int height = options.outHeight;
    int width = options.outWidth;
    int inSampleSize = 1;
    if (height > reqHeight || width > reqWidth) {
        int halfHeight = height / 2;
        int halfWidth = width / 2;
        inSampleSize = 2;
        while (true) {
            if (halfHeight / inSampleSize <= reqHeight && halfWidth / inSampleSize <=
                    reqWidth) {
                break;
            }
            inSampleSize *= 2;
        }
    }
    Helper.showLog("Bitmap Util:", inSampleSize + "");
    return inSampleSize;
}
项目:RetroMusicPlayer    文件:ScalingUtil.java   
/**
 * Utility function for decoding an image resource. The decoded bitmap will
 * be optimized for further scaling to the requested destination dimensions
 * and scaling logic.
 *
 * @param res The resources object containing the image data
 * @param resId The resource id of the image data
 * @param dstWidth Width of destination area
 * @param dstHeight Height of destination area
 * @param scalingLogic Logic to use to avoid image stretching
 * @return Decoded bitmap
 */
public static Bitmap decodeResource(Resources res, int resId, int dstWidth, int dstHeight,
        ScalingLogic scalingLogic) {
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);
    options.inJustDecodeBounds = false;
    options.inSampleSize = calculateSampleSize(options.outWidth, options.outHeight, dstWidth,
            dstHeight, scalingLogic);
    Bitmap unscaledBitmap = BitmapFactory.decodeResource(res, resId, options);

    return unscaledBitmap;
}
项目:GitHub    文件:ImageDecodingInfo.java   
private void copyOptions(Options srcOptions, Options destOptions) {
    destOptions.inDensity = srcOptions.inDensity;
    destOptions.inDither = srcOptions.inDither;
    destOptions.inInputShareable = srcOptions.inInputShareable;
    destOptions.inJustDecodeBounds = srcOptions.inJustDecodeBounds;
    destOptions.inPreferredConfig = srcOptions.inPreferredConfig;
    destOptions.inPurgeable = srcOptions.inPurgeable;
    destOptions.inSampleSize = srcOptions.inSampleSize;
    destOptions.inScaled = srcOptions.inScaled;
    destOptions.inScreenDensity = srcOptions.inScreenDensity;
    destOptions.inTargetDensity = srcOptions.inTargetDensity;
    destOptions.inTempStorage = srcOptions.inTempStorage;
    if (Build.VERSION.SDK_INT >= 10) copyOptions10(srcOptions, destOptions);
    if (Build.VERSION.SDK_INT >= 11) copyOptions11(srcOptions, destOptions);
}
项目:android-project-gallery    文件:BaseImageDecoder.java   
protected ImageFileInfo defineImageSizeAndRotation(InputStream imageStream, ImageDecodingInfo decodingInfo)
        throws IOException {
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeStream(imageStream, null, options);

    ExifInfo exif;
    String imageUri = decodingInfo.getImageUri();
    if (decodingInfo.shouldConsiderExifParams() && canDefineExifParams(imageUri, options.outMimeType)) {
        exif = defineExifOrientation(imageUri);
    } else {
        exif = new ExifInfo();
    }
    return new ImageFileInfo(new ImageSize(options.outWidth, options.outHeight, exif.rotation), exif);
}
项目:GitHub    文件:BaseImageDecoder.java   
protected ImageFileInfo defineImageSizeAndRotation(InputStream imageStream, ImageDecodingInfo decodingInfo)
        throws IOException {
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeStream(imageStream, null, options);

    ExifInfo exif;
    String imageUri = decodingInfo.getImageUri();
    if (decodingInfo.shouldConsiderExifParams() && canDefineExifParams(imageUri, options.outMimeType)) {
        exif = defineExifOrientation(imageUri);
    } else {
        exif = new ExifInfo();
    }
    return new ImageFileInfo(new ImageSize(options.outWidth, options.outHeight, exif.rotation), exif);
}
项目:boohee_v5.6    文件:MediaStoreUtils.java   
public static Bitmap getBitmapFromUri(Context context, Uri uri, Options options) {
    Bitmap bitmap = null;
    InputStream is = null;
    try {
        is = context.getContentResolver().openInputStream(uri);
        bitmap = BitmapFactory.decodeStream(is, null, options);
        if (is != null) {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } catch (FileNotFoundException e2) {
        e2.printStackTrace();
        if (is != null) {
            try {
                is.close();
            } catch (IOException e3) {
                e3.printStackTrace();
            }
        }
    } catch (Throwable th) {
        if (is != null) {
            try {
                is.close();
            } catch (IOException e32) {
                e32.printStackTrace();
            }
        }
    }
    return bitmap;
}
项目:GCSApp    文件:BitmapUtil.java   
public static void saveBitmapFronPath(String srcPath, String picName, String filePath)
        throws FileNotFoundException {

    Options options = new Options();
    options.inJustDecodeBounds = true;
    Bitmap temp = BitmapFactory.decodeFile(srcPath, options);
    options.inJustDecodeBounds = false;
    int actualWidth = options.outWidth;
    int actualHeight = options.outHeight;
    int desiredWidth = actualWidth;
    int desiredHeight = actualHeight;
    if (actualWidth > NOMARL_SIZE && actualHeight > NOMARL_SIZE) {
        if (actualWidth > actualHeight) {
            desiredWidth = (int) (actualWidth * ((NOMARL_SIZE *1.0) / actualHeight));
            desiredHeight = NOMARL_SIZE;
        } else {
            desiredHeight = (int) (actualHeight * ((NOMARL_SIZE *1.0)/ actualWidth));
            desiredWidth = NOMARL_SIZE;
        }
    }
    options.inSampleSize = findBestSampleSize(actualWidth, actualHeight,
            desiredWidth, desiredHeight);
    options.inPurgeable = true;// 同时设置才会有效
    options.inInputShareable = true;//。当系统内存不够时候图片自动被回收

    temp = BitmapFactory.decodeFile(srcPath, options);
    Bitmap resizedBitmap = Bitmap.createScaledBitmap(temp, desiredWidth,
            desiredHeight, true);
    resizedBitmap = BitmapUtil.getRotationBitmap(srcPath, resizedBitmap);
    saveBitmap(resizedBitmap, new File(filePath,picName));
    if(null != temp){
        temp.recycle();
    }
    if(null != resizedBitmap){
        resizedBitmap.recycle();
    }
}
项目:android-project-gallery    文件:BitmapUtils.java   
public static Bitmap getSampledBitmap(String filePath, int reqWidth, int reqHeight)
{
    Options options = new Options();
    options.inJustDecodeBounds = true;

    BitmapFactory.decodeFile(filePath, options);

    // Raw height and width of image
    final int height = options.outHeight;
    final int width = options.outWidth;
    int inSampleSize = 1;

    if (height > reqHeight || width > reqWidth)
    {
        if (width > height)
        {
            inSampleSize = (int)FloatMath.floor(((float)height / reqHeight)+0.5f); //Math.round((float)height / (float)reqHeight);
        }
        else
        {
            inSampleSize = (int)FloatMath.floor(((float)width / reqWidth)+0.5f); //Math.round((float)width / (float)reqWidth);
        }
    }

    options.inSampleSize = inSampleSize;
    options.inJustDecodeBounds = false;

    return BitmapFactory.decodeFile(filePath, options);
}
项目:ArtOfAndroid    文件:ImageResizeUtil.java   
public static Bitmap decodeBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);

    options.inSampleSize = calcInSampleSize(options, reqWidth, reqHeight);

    options.inJustDecodeBounds = false;
    return BitmapFactory.decodeResource(res, resId, options);
}
项目:GCSApp    文件:BitmapUtil.java   
/**
 * 压缩收藏表情,最大边压到150
 */
public static Bitmap getFaceBitmapFronPath(Context context, String filePath)
        throws FileNotFoundException {
    if (null == filePath) {
        return null;
    }

    Options options = new Options();
    options.inJustDecodeBounds = true;
    Bitmap temp = BitmapFactory.decodeFile(filePath, options);
    options.inJustDecodeBounds = false;
    int actualWidth = options.outWidth;
    int actualHeight = options.outHeight;
    int desiredWidth = actualWidth;
    int desiredHeight = actualHeight;
    if (actualWidth > 150 && actualHeight > 150) {
        if (actualWidth > actualHeight) {
            desiredWidth = (int) (actualWidth * ((150 *1.0) / actualHeight));
            desiredHeight = 150;
        } else {
            desiredHeight = (int) (actualHeight * ((150 *1.0)/ actualWidth));
            desiredWidth = 150;
        }
    }
    options.inSampleSize = findBestSampleSize(actualWidth, actualHeight,
            desiredWidth, desiredHeight);
    temp = BitmapFactory.decodeFile(filePath, options);
    temp = Bitmap.createScaledBitmap(temp, desiredWidth,
            desiredHeight, true);
    return temp;
}
项目:ImageLoaderSupportGif    文件:BaseImageDecoder.java   
protected ImageFileInfo defineImageSizeAndRotation(InputStream imageStream, ImageDecodingInfo decodingInfo)
        throws IOException {
    Options options = new Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeStream(imageStream, null, options);

    ExifInfo exif;
    String imageUri = decodingInfo.getImageUri();
    if (decodingInfo.shouldConsiderExifParams() && canDefineExifParams(imageUri, options.outMimeType)) {
        exif = defineExifOrientation(imageUri);
    } else {
        exif = new ExifInfo();
    }
    return new ImageFileInfo(new ImageSize(options.outWidth, options.outHeight, exif.rotation), exif);
}
项目:letv    文件:VideoShotEditActivity.java   
private RoundedImageView createImageViewFromFile(int position, String filename) {
    if (!FileUtils.checkFileIsEnabledPath(filename)) {
        return null;
    }
    Options newOpts = new Options();
    newOpts.inJustDecodeBounds = true;
    Bitmap bitmap = BitmapFactory.decodeFile(filename, newOpts);
    int w = newOpts.outWidth;
    int h = newOpts.outHeight;
    int be = 1;
    if (w > h && ((float) w) > 300.0f) {
        be = (int) (((float) newOpts.outWidth) / 300.0f);
    } else if (w < h && ((float) h) > 400.0f) {
        be = (int) (((float) newOpts.outHeight) / 400.0f);
    }
    if (be <= 0) {
        be = 1;
    }
    Options newOpts2 = new Options();
    newOpts2.inSampleSize = be;
    newOpts2.inJustDecodeBounds = false;
    Bitmap bitmap2 = BitmapFactory.decodeFile(filename, newOpts2);
    RoundedImageView imageView = (RoundedImageView) this.mInflater.inflate(R.layout.videoshot_rounded_item, null, false).findViewById(R.id.riv_imageView);
    imageView.setTag(Integer.valueOf(position));
    imageView.setImageBitmap(bitmap2);
    if (this.mIVArray != null) {
        this.mIVArray.add(imageView);
        return imageView;
    }
    this.mIVArray = new ArrayList();
    this.mIVArray.add(imageView);
    return imageView;
}