2 votes

Comment faire fonctionner la bibliothèque ImageMagick avec Swift 4/iOS 11 ?

Je suis en train d'essayer de faire fonctionner ImageMagick dans mon projet iOS. Malheureusement, tout ce que j'ai essayé jusqu'à présent n'a pas fonctionné.

Cocoapods

L'approche la plus évidente serait d'utiliser le cocoapod. Malheureusement, après avoir installé le cocoapod, il ne semble pas y avoir d'éléments exposés à swift pour être importés. Peut-être que je manque quelque chose d'évident et si quelqu'un a des idées, ce serait génial. Malheureusement, la documentation manque d'exemples spécifiques.

Bibliothèque statique - approche #1

Les docs officiels d'ImageMagick fournissent des instructions pour compiler la dernière version d'ImageMagick et inclure une bibliothèque statique dans votre projet Xcode. Malheureusement, la première étape des instructions nécessite l'exécution d'un script bash imagemagick_compile.sh que je ne peux pas trouver. Une fois de plus, je pourrais manquer quelque chose d'évident.

Bibliothèque statique - approche #2

Après quelques recherches supplémentaires, j'ai trouvé ce gars ~Claudio mentionné dans la documentation ImageMagick comme le mainteneur de la version iOS d'ImageMagick. Il a un repo avec des instructions similaires à celles fournies par ImageMagick, mais ce repo inclut un script bash pour compiler et générer une bibliothèque statique d'ImageMagick. J'ai essayé d'exécuter le script directement ./all.sh 6.8.8-9 mais je me suis vite rendu compte que je n'avais pas configuré un répertoire build comme ses instructions le demandaient et je me suis retrouvé bloqué pour installer correctement libpng.

Bibliothèque statique - approche #3

Le même repo avec les instructions pour compiler et générer une bibliothèque statique inclut également un ancien projet iOS d'exemple avec une bibliothèque statique déjà incluse pour une ancienne version d'ImageMagick. Cela a presque fonctionné, sauf que la bibliothèque ImageMagick a une classe Timer qui entre en conflit avec la classe Timer fournie par Swift4/iOS, donc je n'ai pas pu compiler mon projet en utilisant cette bibliothèque statique d'ImageMagick.

Questions sur ImageMagick iOS sur SO

Il y a quelques autres questions sur Stack Overflow qui traitent de l'utilisation d'ImageMagick sur iOS, donc je sais que d'autres l'ont fait mais rien de très récent. Si quelqu'un a des idées, ce serait grandement apprécié, merci!

Autres questions : https://stackoverflow.com/search?q=imagemagick+ios Malheureusement, je n'en ai trouvé aucune qui m'ait aidé.

1voto

Kent Guerriero Points 41

Pour intégrer ImageMagick dans iOS, vous devrez suivre les étapes suivantes :

  1. Installez la bibliothèque disponible ici https://www.imagemagick.org/download/iOS/ Vous aurez besoin d'un en-tête de transition Swift-Objective-C qui inclut :

    #import "ImageMagick.h"

    #import "MagickWand.h"

    1. Vous devrez modifier toutes les fonctions qui font référence à Timer en Foundation.Timer, cela résoudra tout conflit avec la bibliothèque ImageMagick

    2. Vous devrez ajouter sous Votre cible > Phases de construction > Lier les binaires avec des bibliothèques > "libxml2.tbd".

En espérant que cela vous aide

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X