2

私のアプリでは、ユーザーがカメラで写真を撮り、画像データを含むバイト配列を返すことができます(現時点ではjpegですが、変更できます)。

写真の幅と高さがわかっていれば、使用することは可能ですか?

BitmapFactory.decodeByteArray(data, offset, length)

指定されたオフセットから画像をデコードして、2乗画像を取得するには?

画像は高解像度(ポートレート)であり、画像処理にはこの画像の四角い底がまだ高解像度である必要があります。

x offset = 0
y offset = height - width
width = width
height = width

私はこの答えを見ましたが、それでもこれが可能かどうか疑問に思いました。必要に応じて、画像データを別の形式で圧縮できます

私の推測ではn、ピクセルの行を格納するために使用されるバイト数を(既知の次元を使用して)計算することでした。n = maxRows - pictureWidth

次に、計算されたオフセットから開始します

4

1 に答える 1

0

最初に小さなサイズにデコードします

BitmapFactory.Options opt = new BitmapFactory.Options();
    opt.inSampleSize = 4;  //inSampleSize == 4 returns an image that is 1/4 the width/height of the original, and 1/16 the number of pixels

BitmapFactory.decodeByteArray(data, offset, length, opt)

その後

bitMap1 = Bitmap.createScaledBitmap(bitMap, width, height, true);

これを試して

于 2012-12-28T10:35:15.630 に答える