Bilder schnell speichern und laden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • Bilder schnell speichern und laden

    Hallo Entwickler,

    wie der Titel schon sagt, suche ich einen Weg, um Bilder (UIImages) schnell zu speichern und zu laden.
    Jetzt mache ich es so, dass ich die Bilder in NSMutableDictionaries lege und diese dann mit NSKeyedArchiver in der Documents Directory speichere.

    Das Problem ist, dass es schon bei 3-4 Bildern das Speichern ziemlich lange dauert.
    Gibt es einen schnelleren Weg? Wichtig ist mir die Dictionary Struktur schon, da jedes Bild seinen Identifier hat, die nicht Zahlen sind.
  • UIImages in einem Container, also NSArray, NSDictionary, etc., sind evtl. gefährlich, da mit dem Container natürlich auch direkt alle UIImages geladen werden und im Speicher liegen. Bei 3-4 UIImages sicherlich kein Problem, aber bei sehr vielen UIImages kann es dann natürlich schnell zu einer Memory Warning kommen.

    Vielleicht kannst Du für die Bilder ja eine eigene Klasse verwenden, welche die Bilder nur Bedarf in den Speicher läd und evtl. schon im Hintergrund speichert, wenn Du dieser Klasse ein Bild zuweist. Dann brauchst Du beim Speichern des Containers nur die evtl. noch nicht gespeicherten Images speichern.
  • und wenn 1 mio dateien im docuemnts ordner liegen ist das ja auch egal. und wenn du nicht willst dass der user die so direkt sieht dann pack sie einfach in einen ordner den du in deinem app als bundle definierst.
    speicher jedes bild mit einem eindeutigen namen ab zb 1.jpg bis N.jpg und den originalnamen und was weiß ich was dazu in deinem dictionary.
  • Image I/O (CGImageSource / CGImageDestination) ist oft schneller als das normale High-Level-Zeug und es unterstützt inkrementelles Laden. Wenn du mehrere Bilder in einer Datei haben willst, kannst du dafür TIFF nehmen, das unterstützt das. Wenn es zu viele Pixel sind wird das aber zwangsläufig seine Zeit dauern. Da helfen Thumbnails und Laden im Hintergrund. Und zu überlegen, warum man überhaupt hunderte von Bildern gleichzeitig laden muss...
    Multigrad - 360°-Produktfotografie für den Mac
  • mattik schrieb:

    Und zu überlegen, warum man überhaupt hunderte von Bildern gleichzeitig laden muss...


    Zumal man auf einem iPhone/iPad niemals mehr als 1536 × 2048 Pixel darstellen kann, also theoretisch auch niemals mehr im Speicher haben muss. Höchstens noch ein paar zum Cachen wenn man scrollen will

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)