Ciao!Android. Come scrivere testo su un'immagine veramente grande (bitmap) e salvare che
È il seguente problema: Ho bisogno di scrivere un testo lungo su un'immagine abbastanza grande e salvarlo lì.
Condizioni:
- dimensioni dell'immagine sopra 3000 x 2000;
- Dividere l'immagine in parti non è consentito perché il testo deve essere scritto su un'intera immagine da un bordo all'altro.
- Aggiunto: Non è possibile utilizzare la scala Bitmap o la scala Matrix, in quanto è necessario scrivere testo sull'immagine originale (a grandezza originale).
- Aggiunto: Quando mostro l'immagine per l'utente che uso scala Bitmap:
options.inSampleSize = 10;
e senza problemi con la mancanza di memoria
Il problema attuale:
Quando provo a caricare questa immagine in errore Bitmap si verifica con la limitazione della memoria (budget VM).
Domande:
- Come testo su un'immagine grande senza caricarlo in memoria?
- Possono librerie esistenti per questo? esempio
Codice:
// 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 |
|________________________________________________|
*/
L'immagine ha parti trasparenti o no? – Plato
non trasparente usato – Andrei
fortuna su questo? – Adrian