ios - mise - itunes




Gérer de grandes images dans iOS (2)

Jetez un oeil à ce travail par Trevor Harmon. Il a amélioré les performances de mon application. Je crois que cela fonctionnera pour vous aussi.

https://github.com/coryalder/UIImage_Resize

Je veux permettre à l'utilisateur de sélectionner une photo, sans en limiter la taille, puis l'éditer.

Mon idée est de créer une vignette de la grande photo avec la même taille que l'écran pour l'édition, puis, lorsque l'édition est terminée, utilisez la grande photo pour faire la même modification qui a été effectuée sur la vignette.

Lorsque j'utilise UIGraphicsBeginImageContext pour créer une image miniature, cela provoque un problème de mémoire.

Je sais qu'il est difficile d'éditer toute la grande image directement en raison des limites matérielles, donc je veux savoir si je peux sous-échantillonner la grande image à moins de 2048 * 2048 sans problèmes de mémoire?

J'ai trouvé qu'il y a une classe BitmapFactory qui a une option inSampleSize qui peut sous-échantillonner une photo dans la plate-forme Android. Comment cela peut-il être fait sur iOS?


Vous devez gérer le chargement de l'image en utilisant UIImage qui ne charge pas réellement l'image en mémoire et ensuite créer un contexte bitmap à la taille de l'image résultante que vous voulez (donc ce sera la quantité de mémoire utilisée). Vous devez ensuite répéter plusieurs fois le dessin de mosaïques à partir de l'image d'origine (c'est-à-dire que les parties des données d'image sont chargées en mémoire) en utilisant CGImageCreateWithImageInRect dans le contexte de destination à l'aide de CGContextDrawImage .

Voir cet exemple de code d'Apple .





cgbitmapcontext