キャンバスに何かを描画して大きな画像に保存するなどの要件があります。現時点でonDraw()メソッド内に描画して保存するものは、デバイス提供のイメージ/キャンバスサイズ、つまり538(w)/ 852(h)付近のものを指定します。私は解像度を失うことなく、およそ2倍のサイズ、約1000(w)/ 1500(h)のイメージが必要です。どのサンプルコード、リファレンスリンクも間違いなく役立ちます。前もって感謝します。キャンバスに描画して大きな画像に保存する
0
A
答えて
0
1つの方法は、所望の大きさのビットマップを作成し、キャンバスを使用して、その上に描画することです:
int w = 1000, h = 1500;
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmp = Bitmap.createBitmap(w, h, conf);
Canvas canvas = new Canvas(bmp);
最後に、あなたはあなたの図面や必要なdimentionsとBMPています。
EDIT ::
@Override
protected void onDraw(Canvas canvas) {
int w = 1000, h = 1500;
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmp = Bitmap.createBitmap(w, h, conf);
Canvas mycanvas = new Canvas(bmp);
super.onDraw(mycanvas);
...
}
0
まず、あなたの要件に応じてビットマップを拡大、機能getDrawingCache()
を使用して、ビューのビットマップを取得します。
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
//bitmap = bitmap.createScaledBitmap(..as your requirements..);
EDIT
あなたはより高品質の画像が欲しいと言っています。低品質の画像から高品質の画像を取得することは簡単ではありません。ただし、ビットマップ・フィルタリングを適用して、やや良い品質を得ることができます。
Bitmap bitmap = getDrawingCache();
Bitmap output = Bitmap.createBitmap(/*width, height, bla bla bla*/);
Canvas canvas = new Canvas(output);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
Rect srcRect = new Rect(0,0,bitmap.getWidth(), bitmap.getHeight());
Rect destRect = new Rect(0,0,output.getWidth(), output.getHeight());
canvas.drawBitmap(bitmap, srcRect, destRect, paint);
+0
スケーリングビットマップで解像度が失われますか?ギャラリー、画像ビューアなどの他のサードパーティのツールからこの画像がズームインされても、私の要件は「良い解像度」を得ることです。 – dask
+0
@dask check edited answer。 –
関連する問題
- 1. Androidで画像にキャンバス描画を保存する
- 2. html5キャンバス描画/保存
- 3. 画像を描画してファイルに保存する方法は?
- 4. Phplot画像を描画してファイルに保存します
- 5. WPF - キャンバスに画像を作成して描画する
- 6. URLから画像をダウンロードしてキャンバスに描画する - Android
- 7. iPhoneのコアデータに大きなファイル(例:画像/動画)を保存
- 8. キャンバスに画像を追加すると画像としてキャンバスを保存できません
- 9. CloudKitに大きな画像を保存するには?
- 10. ASP.netのサーバーに画像としてキャンバスを保存する
- 11. アンドロイドで小さな画像をキャンバスに描画する方法
- 12. 既存の画像に描画する
- 13. 大きな画像に描画可能な解像度を設定する
- 14. キャンバスからデータベースに描画座標を保存する
- 15. Silverlightのキャンバスに画像を動的に描画する
- 16. プログラムロジックを描画し、大きな画像に焦点を当てるエディタ?
- 17. 大きな画像マトリックス:小さなマトリックスに保存
- 18. キャンバス描画イメージを拡大する
- 19. jquery mobileでキャンバスに画像を描く
- 20. キャンバスの中央に画像を描く
- 21. 大きな画像に画像をコピー
- 22. 複数の画像をキャンバスに描画する
- 23. 後でキャンバスの中に描画してイメージを保存する方法は?
- 24. キャンバスに描画するときのオフセット
- 25. は、キャンバス上の画像を描画し、まずテクスチャとして
- 26. なぜJavaScriptはキャンバス上に画像を描画しないのですか?
- 27. 画像ファイルにキャンバスを保存すると空白の黒い画像が保存されます
- 28. HTML5キャンバス - 画像が正しく描画されない
- 29. キャンバス上にテキストを描画し、画面
- 30. iOS swiftで大きな画像を保存する
私はonDraw(Canvas c)内のすべてをやっています。それを大きな画像に保存するには?提供されたコードを使用して再描画して保存する必要がありますか? – dask
この場合、現在のキャンバスを親Viewクラスからリンク解除し、作成したビットマップを必要なサイズでリンクすることができます。 –