0

コンストラクターでファイルを取得するクラスがあります。このファイルはjpegです。このクラスでこのjpegファイルの解像度を取得するにはどうすればよいですか?これはコンストラクターからのコードです:

public static Bitmap bitmapSizer(File file) {

        BitmapFactory.Options options = new BitmapFactory.Options();
        Bitmap bitmap = null;

        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(file.getAbsolutePath(), options);

        int imageHeight = options.outHeight;
        int imageWidth = options.outWidth;
        options.inDither = true;
        options.inPreferredConfig = Bitmap.Config.ARGB_4444;
        options.inPurgeable = true;
        options.inSampleSize=8;         
        options.inJustDecodeBounds = false;
4

1 に答える 1

2

数行のコードを移動する必要があります。
まず、Optionsオブジェクトを起動します。

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inDither = true;
    options.inPreferredConfig = Bitmap.Config.ARGB_4444;
    options.inPurgeable = true;
    options.inSampleSize=8;         
    options.inJustDecodeBounds = true;

options.inJustDecodeBounds =trueに注意してください。 これは、画像全体ではなく、jpgのヘッダーのみを読み取ります。
次に、ファイルをデコードします。

    Bitmap bitmap = null;
    BitmapFactory.decodeFile(file.getAbsolutePath(), options);

デコード後、次の結果が得られます。

    int imageHeight = options.outHeight;
    int imageWidth = options.outWidth;
于 2012-07-26T08:25:58.907 に答える