0

私はビットマップ(後で紙に印刷されます)を作成し、キャンバスを使用して描画しています。ただし、保存後は常に 72 dpi の解像度になります。使ってみましbitmap.setDensity(96);たが、うまくいかないようです。

これは私がビットマップを作成して保存する方法です。

Bitmap outBitmap = Bitmap.createBitmap(378,559,Bitmap.Config.RGB_565);
         OutputStream outStream = null;
         File file = new File(Environment.getExternalStorageDirectory(),
         "96dpiBitmap.png");
         try {
         outStream = new FileOutputStream(file);
         outBitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
         outStream.flush();
         outStream.close();
         } catch (FileNotFoundException e) {
         // doh
         } catch (IOException e) {
         // doh
         }

そう。dpi > 72 でビットマップを保存するにはどうすればよいですか?

4

1 に答える 1

0

たとえば、元のビットマップからスケーリングされたビットマップを作成する必要があります。

MyNewBitmap = Bitmap.createScaledBitmap(myOldOne,612,612,false); 

ここで、幅612と高さ612の結果は、画像の2乗になります。私はこの方法を使用して、Instagramが画像を拡大縮小したり切り取ったりするのを防ぎ、Instagramの画像のトリミングに完全に適合させています:)。とにかく、72dpiに合うように画像を拡大縮小する適切な方法を見つける必要があります。800x600でうまくいくと思います。新しいビットマップを作成し、古いビットマップをスケーリングしてから、newBitmapを保存してみてください。幸運を

于 2013-02-01T18:05:40.483 に答える