2

ビットマップのリストがあります。私が望むのは、これらのビットマップを取得し、キャンバスの助けを借りて、私が持っているビットマップのリストから画像を縮小した (つまり、画像を非常に小さくする) 新しいビットマップを作成することです。

私はなんとかこれを行うことができましたが、縮小のために画像はかなりひどいものに見えます. 設定、新しいキャンバスの作成など、多くのことを試しました。

単純な最初のソリューションは次のようになります (コードは以下) が、前述したように、画像はひどく見えます。

public static Bitmap folderBitmap(Bitmap bitmap[]) {

    Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.RGB_565);
    Canvas c = new Canvas(b);

    c.drawARGB(255, 255, 255, 255);

    Paint paint = new Paint();
    paint.setAntiAlias(false);
    paint.setFilterBitmap(false);
    paint.setDither(true);

    c.drawBitmap(getBit(bitmap), 4, 4, paint);
    c.drawBitmap(getBit(bitmap), 35, 4, paint);
    c.drawBitmap(getBit(bitmap), 67, 4, paint);

    c.drawBitmap(getBit(bitmap), 4, 35, null);
    c.drawBitmap(getBit(bitmap), 35, 35, null);
    c.drawBitmap(getBit(bitmap), 67, 35, null);

    c.drawBitmap(getBit(bitmap), 4, 67, null);
    c.drawBitmap(getBit(bitmap), 35, 67, null);
    c.drawBitmap(getBit(bitmap), 67, 67, null);

    return b;
}

private static Bitmap getBit(Bitmap[] b) {
    Bitmap newBitmap = Bitmap.createScaledBitmap(b[getR()], 28, 28, false);

    return newBitmap;
}

private static int getR() {
    Random r = new Random();
    int rint = r.nextInt(8);
    return rint;
}

ひどいというのは、ピクセル化されて不鮮明に見えるということです。

4

3 に答える 3

3

画像のサムネイルを作成できます:

Bitmap thumbBitmap = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(filePath), thumbWidth, thumbHeight);
于 2013-07-17T10:15:53.810 に答える