Frage

Ich habe eine Sequenz von Bildern benötigten in kurzer Zeit (PNG-Sequenz) angezeigt werden soll. Insgesamt gibt es 31 PNGs insgesamt, die jeweils mit der Dateigröße etwa 45KB. Ich habe luden sie bereits mit folgenden Codes:

imgArray = [[NSMutableArray alloc] init];
for(int i = 0; i <= 30; i++) {
    NSString * filename = [NSString stringWithFormat:@"img_000%.2d.png", i];
    UIImage *temp = [UIImage imageNamed:filename];
    [imgArray addObject:temp];
    [temp release];
    temp = nil;
} 

Ich verwende die folgenden Codes für die Anzeige der Bilder:

CGImageRef image = [(UIImage *)[imgArray objectAtIndex:imgFrame] CGImage];
imgLayer.contents = (id)image;
if(imgFrame < 29) {
    imgFrame++;
} else {
    imgFrame = 0;
    imgLayer.hidden = TRUE;
    [imgTimer invalidate];
}

wo imgLayer ist ein CALayer. (ImgTimer ist ein Wiederholungsintervall-Zeitgeber mit 0.03s)

Aber ich fand, dass, wenn ich die Bilder rufe, es nicht beim ersten Mal sehr laggy ist. Mit Ausnahme der ersten Erscheinung, hat andere Aussehen kein Problem.

Ist es ähnliche Bilder zu Vorbelastung? Oder sind meine Bilder zu groß in der Dateigröße?

War es hilfreich?

Lösung

Der Grund für Ihre Lags sind schwer zu sagen, ohne Datenprofilierung. Aber hier ist ein Trick, die helfen könnten: Steigen Sie alle Ihre Bilder in eine große Datei. Versuchen Sie es rechteckig zu machen (vielleicht in Ihrem Fall 6x6 oder 4 * 8). Dann laden Sie einzelne Datei dieses und jedes Bild zur Anzeige beschneiden (d erstellen ein Bild für die Anzeige mit der Größe einer Kachel und kopieren Sie eine Kachel aus dem großen Bild nach dem anderen in das Anzeigebild).

Andere Tipps

Die Bilder werden geladen, wenn sie verwendet werden und angezeigt. Wenn Sie die Zeit-Profiler in Instrumente verwenden, werden Sie die Verzögerung Sie erlebt haben. Wenn Sie dann zu dieser Verzögerung vergrößern und schauen, was es verursacht wird, werden Sie in der Regel sehen, dass „copyImageBlockSetPNG“ ist die Funktion Zeit nehmen, kurz vor „aufblasen“.

Was Sie müssen einen Weg finden zu tun ist, Ihre Bilder erstellen und sie laden erzwingen, bevor Sie sie benötigen. Das ist eine andere Geschichte offenbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top