Anzeigen von interlaced (progressiven) Bildern in UIImageView

Ich versuche, ein JPEG-Bild beim Herunterladen anzuzeigen, wobei ein Teil der Daten verwendet wird, ähnlich wie bei vielen Webbrowsern oder der Facebook-App.

Es gibt eine Version des Bildes mit niedriger Qualität (nur ein Teil der Daten), und dann wird das gesamte Bild in voller Qualität angezeigt.

dies zeigt sich am besten in derVIDEO HIER

Ich bin dieser SO-Frage gefolgt:

Wie zeige ich ein progressives JPEG in einer UIImageView an, während es heruntergeladen wird?

Aber alles, was ich bekam, war eine Bildansicht, die gerendert wird, während die Daten erhalten bleiben. Zuerst keine minderwertige Version, kein wirklich progressives Herunterladen und Rendern.

Kann jemand einen Codeausschnitt freigeben oder mich darauf hinweisen, wo ich weitere Informationen dazu finde, wie dies in einer iOS-App implementiert werden kann?

Wenn Sie diesen Link ausprobieren, der beispielsweise JPEG-Informationen anzeigt, wird das Bild als progressiv identifiziert

http://www.webpagetest.org/jpeginfo/jpeginfo.php?url=http://cetus.sakura.ne.jp/softlab/software/spibench/pic_22p.jpg

und ich habe die richtige Codesequenz verwendet

-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
    /// Append the data
    [_dataTemp appendData:data];

    /// Get the total bytes downloaded
    const NSUInteger totalSize = [_dataTemp length];
    /// Update the data source, we must pass ALL the data, not just the new bytes
    CGImageSourceUpdateData(_imageSource, (CFDataRef)_dataTemp, (totalSize == _expectedSize) ? true : false);

    /// We know the expected size of the image
    if (_fullHeight > 0 && _fullWidth > 0)
    {
            [_imageView setImage:[UIImage imageWithCGImage:image]];
            CGImageRelease(image);
    }
}

Der Code zeigt das Bild jedoch erst dann an, wenn der Ladevorgang abgeschlossen ist. Bei anderen Bildern wird es beim Herunterladen angezeigt, jedoch nur von oben nach unten, keine Version mit geringer Qualität. Anschließend werden nach und nach Details hinzugefügt, wie dies bei Browsern der Fall ist.

DEMO-PROJEKT HIER

Antworten auf die Frage(5)

Ihre Antwort auf die Frage