2016-04-17 5 views
-1

Ich muss bereits große JPEGs vergrößern, sie werden beim Drucken verwendet, also müssen sie wirklich große 300PPI-Dateien sein. Das resultierende Bild ist zu groß, um vollständig im Speicher zu bleiben. Was ich dachte, war so etwas wie das Originalbild in kleine Streifen zu zerlegen, jedes einzeln zu vergrößern und es in die Ausgabedatei (ein anderes JPEG) zu schreiben, wobei das fertige Bild niemals vollständig auf Menoru gehalten wird. Ich habe gelesen, über verlustfreie Operationen auf JPEGs scheint es der Weg zu gehen (erstellen Sie eine Datei mit dem Streifen und kopieren Sie die MCUS, Huffman-Tabellen und Quantizatuon Tabellen in die endgültige Datei), lesen Sie auch etwas über gekürzte Streams auf Java. Was ist ein guter Weg, dies zu tun?Vergrößern bereits große JPEGs mit weniger Speicher

+0

Interessanter Hinweis: 2D-Bildskalierung ist genau, warum ich die 2D-Spielprogrammierung aufgegeben habe und auf 3D umgestiegen bin. Meine Bemühungen, Bilder zu skalieren, führten unweigerlich zu der gleichen Schlussfolgerung: Es kann nicht angemessen getan werden. – Krythic

+0

Warum glauben Sie, dass Sie die Bilder besser skalieren können als ein guter Drucker? Sie erhöhen im Grunde nur die Dateigröße, ohne die Qualität zu erhöhen, da alle Daten, die Sie hinzufügen, nur vom Originalbild interpoliert (oder extrapoliert) werden. – haraldK

Antwort

1

Sie sollten die JPEGs in Ruhe lassen und die Drucksoftware die Ausgabe auf das Gerät skalieren lassen.

Wenn Sie wirklich die Größe verdoppeln möchten, könnten Sie Subsampling verwenden. Verdoppeln Sie einfach die Y-Komponente in jeder Richtung und ändern Sie die Abtastung für Cb und Cr, während Sie die Daten alleine lassen.

Sie könnten auch tun, was Sie sagen, und in MCU-Streifen komprimieren.

+0

Wie könnte ich die Streifen wieder komprimieren, ohne das ganze Bild im Speicher zu haben? –

+0

Sie müssten etwas schreiben, das MCU-Zeilen nacheinander lesen, erweitern und komprimieren. Ich denke immer noch, dass es das Beste ist, wenn das Gerät die Bilder skaliert. Sie werden nicht in der Lage sein, so zu glätten. – user3344003