我有一個要求,就像在畫布中繪製某些內容並將其保存爲較大的圖像。截至目前,無論我在onDraw()方法中繪製並保存,它都會提供設備提供的圖像/畫布大小,比如538(w)/ 852(h)。我需要幾乎兩倍的圖像,大約1000(w)/ 1500(h)而不會失去分辨率。任何示例代碼,參考鏈接都會有幫助。提前致謝。在畫布中繪製並將其保存爲較大圖像
0
A
回答
0
一種方法是創建所需大小的位圖和借鑑它用帆布:
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。
編輯::使用功能getDrawingCache()
視圖的
@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
先得到位圖,然後縮放位圖按您的要求。
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
//bitmap = bitmap.createScaledBitmap(..as your requirements..);
編輯
您是說要在更高質量的圖像。您不能簡單地從較低質量的圖像獲得更高質量的圖像。但是,您可以應用位圖過濾來獲得稍好的質量。
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
縮放位圖會導致分辨率丟失,對嗎?我的要求是要獲得「良好的分辨率」,即使我看到這個圖像從任何其他第三方工具放大,如畫廊,imageviewer等。 – dask
+0
@dask檢查編輯的答案。 –
相關問題
- 1. 繪製畫布後在手機中保存畫布圖像
- 2. 我想將我的畫布繪製保存爲位圖圖像
- 3. 如何將畫布繪製保存爲圖像?
- 4. 在3層畫布上繪製圖像並保存
- 5. 如何讓用戶在畫布內繪製並保存圖像?
- 6. javascript:上傳圖像文件並將其繪製到畫布中
- 7. Phplot繪製圖像並將其保存在文件中
- 8. 將圖表保存爲圖像,然後將其繪製在
- 9. 繪製並保存圖像
- 10. WPF,C#,油墨畫布,圖像 - 如何在現有圖像上保存inkcanvas並將其保存爲新圖像?
- 11. 在循環中繪製R圖,並將其保存爲jpeg
- 12. 在畫布上繪圖並保存圖像
- 13. 將畫布調整爲較大的圖像並將其發送到服務器
- 14. 將圖像繪製到畫布中
- 15. 如何將畫布保存爲圖像?
- 16. 將畫布保存爲圖像
- 17. html5畫布繪製/保存
- 18. 繪製大型圖像到畫布上
- 19. 將保存的圖像數據重繪爲HTML 5畫布
- 20. 如何通過圖像繪製圖像並將其保存爲android系統
- 21. 將繪圖保存到圖像上,然後在繪圖上繪製其他線條並再次保存。
- 22. 保存畫布繪圖
- 23. 閃存上傳圖像繪製畫布
- 24. 畫布保存像素繪製出視圖製造
- 25. 在Android中保存畫布在圖像上繪圖
- 26. HTML5畫布繪製圖像
- 27. 使用背景圖像在畫布上繪圖並保存圖像
- 28. 在畫布中間繪製圖像
- 29. 將圖像添加到畫布不允許將畫布保存爲圖像
- 30. 在HTML5畫布中將文本繪製爲圖像
同意,但目前無論我在做什麼,都在onDraw(Canvas c)中。如何將它保存到更大的圖像?是否需要使用您提供的代碼重新繪製並保存它? – dask
瞭解,在這種情況下,您可以將當前畫布從父視圖類中取消鏈接,並將您創建的位圖與必要尺寸鏈接起來。 –