Ich arbeite an einem Programm, das Vorschaubilder von JPEG-Bildern im laufenden Betrieb erstellt. Jetzt dachte ich: Da ein JPEG-Bild aus 8x8-Pixel-Blöcken (Wikipedia has a great explanation) erstellt wird, wäre es möglich, einen Teil der Decodierung zu überspringen?JPEG-Bild während der Dekodierung ändern
Nehmen wir an, meine Thumbnails sind mindestens 8 mal kleiner als das Originalbild. Wir könnten dann jeden 8 × 8 Block in der Eingabedatei auf 1 Pixel in der Decodierungsausgabe abbilden, indem wir nur den konstanten Term der diskreten Kosinustransformation einschließen. Die meisten Bilddaten können sofort verworfen werden und müssen nicht verarbeitet werden. Außerdem wird die Speicherbelegung um den Faktor 64 reduziert.
Ich möchte das nicht von Grund auf neu implementieren; das wird leicht eine Woche dauern. Gibt es irgendeinen Code, der das kann?
Wenn nicht, ist das, weil dieser Ansatz nicht lohnt, oder einfach weil niemand daran gedacht hat?
'libjpeg' kann dies bereits, Sie können diese Funktion in ImageMagick verwenden, indem Sie die Bildgröße ** vor dem Laden einstellen. –