Voglio ritagliare l'immagine senza ottenere l'eccezione OutOfMemory
.
significa che ho x, y, larghezza e altezza dell'immagine ritagliata e voglio ritagliare l'immagine originale senza portarla in memoria.
Sì, so che BitmapRegionDecoder
è una buona idea, ma forse l'immagine ritagliata sarebbe troppo grande per portarla in memoria. Ritaglia l'immagine senza OutOfMemory - Android
EDIT: voglio Salva immagine ritagliata non solo mostrando in un
ImageView
voglio salvarlo in un nuovo file
senza quote perdere
in questa situazione la risoluzione dell'immagine ritagliata è 20000x20000 e il codice di sotto non funziona causa di OOM:
BitmapRegionDecoder bitmapRegionDecoder = BitmapRegionDecoder.newInstance(inputStream, false);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap bitmap = bitmapRegionDecoder.decodeRegion(new Rect(width/2 - 100, height/2 - 100, width/2 + 100, height/2 + 100), options);
mImageView.setImageBitmap(bitmap);
utilizzando inSampleSize per diminuire la dimensione dell'immagine originale è buona ma il risultato che ho salvato non è più 20000x20000.
Come posso ritagliare il 25000x25000 e salvare la parte di immagine 20000x20000 in un file?
why down vote? condividi le tue conoscenze –
Stack Overflow è per domande di programmazione. Qual è la tua domanda? Se la tua domanda è "come faccio a fare questo?", Spiega cosa hai provato e quali problemi specifici hai riscontrato. – CommonsWare
sì! la mia domanda è come faccio a farlo in Android? Ho provato tutte le risposte relative alle domande correlate in StackOverflow e ogni singola risposta dipendeva dall'oggetto 'Bitmap' che è un rischio di OOM. Non so quale parte della mia domanda sia vaga. @CommonsWare –