2016-04-05 6 views
2

Es gibt viele "Interlace" -Optionen in ImageMagick, aber ich verstehe den Unterschied nicht wirklich. Alle Optionen im Titel scheinen eine vergleichbare JPG-Datei zu erzeugen - vielleicht, wenn ich eine langsamere/gedrosselte Verbindung hätte, könnte ich einen Unterschied erkennen.Was sind die praktischen Unterschiede zwischen imagick :: INTERLACE_JPEG/INTERLACE_PLANE/INTERLACE_LINE?

Gibt es einen praktischen Unterschied? Sollte einer über den anderen gewählt werden?

Danke

Antwort

4

Es gibt keinen Unterschied. Hier ist der relevante Code in ImageMagicks jpeg Geber:

#if (JPEG_LIB_VERSION >= 61) && defined(C_PROGRESSIVE_SUPPORTED) 
    if ((LocaleCompare(image_info->magick,"PJPEG") == 0) || 
     (image_info->interlace != NoInterlace)) 
    { 
     if (image->debug != MagickFalse) 
     (void) LogMagickEvent(CoderEvent,GetMagickModule(), 
      "Interlace: progressive"); 
     jpeg_simple_progression(&jpeg_info); 
    } 
    else 
    if (image->debug != MagickFalse) 
     (void) LogMagickEvent(CoderEvent,GetMagickModule(), 
     "Interlace: non-progressive"); 
#else 
    if (image->debug != MagickFalse) 
    (void) LogMagickEvent(CoderEvent,GetMagickModule(), 
     "Interlace: nonprogressive"); 
#endif 

Das heißt, wenn progressive JPEG unterstützt wird und Interlace ist nicht NoInterlace, wird es eine progressive JPEG schreiben, egal, was Geschmack von Interlacing Sie anfordern. Wie Sie in der zweiten Zeile des zitierten Codes sehen können, können Sie auch eine progressive Ausgabe anfordern, indem Sie die Erweiterung "PJPEG" oder das Format "PJPEG" verwenden.

+0

Danke, perfekt! – Codemonkey