Xin chào!Android. Cách viết văn bản trên hình ảnh thực sự lớn (bitmap) và lưu rằng
Có vấn đề sau: Tôi cần viết một văn bản dài trên một hình ảnh khá lớn và lưu nó ở đó.
Điều kiện:
- kích thước hình ảnh hơn 3000 x 2000;
- Chia hình ảnh thành các phần không được phép vì văn bản được viết trên toàn bộ hình ảnh từ cạnh này sang cạnh khác.
- Đã thêm: Tôi không thể sử dụng thang tỷ lệ bitmap hoặc ma trận, vì nó là cần thiết để viết văn bản trên hình ảnh gốc (có kích thước đầy đủ).
- Added: Khi tôi thể hiện hình ảnh cho người sử dụng tôi sử dụng quy mô Bitmap:
options.inSampleSize = 10;
và không có vấn đề với thiếu bộ nhớ
Vấn đề hiện nay:
Khi tôi cố gắng tải hình ảnh này trong lỗi Bitmap xảy ra với giới hạn bộ nhớ (ngân sách VM).
Câu hỏi:
- Làm thế nào để văn bản trên một hình ảnh lớn mà không cần nạp nó vào bộ nhớ?
- Thư viện hiện có có thể sử dụng cho điều này không?
Mã dụ:
// Step 1. Open image and load to Bitmap
Bitmap bitmap = BitmapFactory.decodeFile(fileName); // runtime Exception like "VM budget" !
// or
//Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.big_img_1); // as in previous runtime Exception like "VM budget" !
// or
//Bitmap bitmap = BitmapFactory.decodeStream(fileInputStream); // as in previous runtime Exception like "VM budget" !
// Step 2. Write text
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(14);
Canvas canvas = new Canvas(bitmap);
canvas.drawText("some long long string over all image", 100, 100, paint);
// Step 3. Save bitmap to file
OutputStream fOut = new FileOutputStream(new File(fileName));
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
/*
_________________________________________________
| |
| |
| |
| |
| IMG |
| |
| |
| some long long string over all image |
|________________________________________________|
*/
Những hình ảnh có phần minh bạch hay không? – Plato
không sử dụng minh bạch – Andrei
bất kỳ may mắn nào trên trang này? – Adrian