2016-04-15 3 views
-1

Eigentlich holen i die mupdf Bibliothek verwenden die Bilder zu holen, mit Hilfe, wie die Qualität von Bildern aus PDF unter Verwendung mupdf Bibliothek in android

DrawPage (Bitmap, pdfwidth, pdfHeight, x, y, imagewidth, imageheight) ;

aber die Qualität des Bildes ist bis zu der Marke nicht, also ich erhöhte die imageheight und imagewidth dann bin ich das Bild mit hoher Qualität bekommen, aber das Bild zu viel Speicher nimmt, so dass ich nicht genügend Arbeitsspeicher Ausnahme bin immer.

Kann jemand vorschlagen, welcher der beste Weg ist, um dieses Problem zu lösen. Muss ich nach dem Erhalten des Qualitätsbildes fliesen? oder kann ich etwas tun, um ein qualitativ hochwertiges Bild zu erhalten, das weniger Speicher benötigt?

oder eine andere beste Möglichkeit, dies zu tun?

Vielen Dank im Voraus.

Antwort

0

Sie arbeiten mit unkomprimierten Bildern, daher hängt die Speichernutzung direkt von der Breite multipliziert mit der Höhe ab. Es gibt nichts, was Sie tun können, um diese Speichernutzung zu reduzieren, während Sie eine hohe Auflösung beibehalten, ohne die Farbtiefe zu reduzieren, was ich vermutlich nicht tun möchte.

Also die Lösung ist Kacheln (oder, je nachdem, was Sie erreichen möchten, Bänder - Bands wäre die normale Lösung für den Druck oder den Export nach PNG).

Sie könnten mit den Bands auf der Java-Ebene umgehen. Oder wenn Sie in png oder ein ähnliches Format exportieren möchten, könnten Sie Code auf der C-Ebene basierend auf source/tools/mudraw.c in der mupdf-Codebase schreiben, die Bänder verwendet, um die Speicherauslastung niedrig zu halten (und auch verwenden kann) mehrere Threads, um die Geschwindigkeit auf Geräten mit mehreren CPU-Kernen zu erhöhen.

Es ist schwer zu sagen, welche Lösung am besten wäre, ohne zu wissen, was Sie erreichen möchten. Wenn Sie nicht mit C und JNI vertraut sind, sind Sie wahrscheinlich am besten mit einer Java-Lösung.

Verwandte Themen