IOS: Comment manipuler des images

Voici mon problme: je veux afficher 3 images choisies au hasard parmi quelques centaines. Sans doute la solution est trs simple, mais je ne la vois pas.

Ces images pourraient tre affiches dans un IOSImageView, mais la proprit ‘image’ de l’IOSImageView n’est accessible que dans l’IDE.
Devrais-je utiliser un canvas ? Dans ce cas, je devrais charger les images dans un Array ? N’aurais-je pas un problme de mmoire disponible ?
Peut-on les copier dans un dossier du ‘SpecialFolder.Documents’ ?

Que de questions…

Voici un exemple minimal.

J’ai dpos dans le projet trois images : blue, Mozart, Gioconda. Elles seront donc automatiquement incluses dans le bundle.

Voici le code ncessaire pour les afficher au hasard :

dim pic() as iOSImage = Array(blue, Mozart, Gioconda) ImageView1.Image = pic(RandomInt(0,2))

C’est tout :slight_smile:

Comme vous pouvez le voir, la proprit Image est accessible en code.

Pas besoin de copier les images ailleurs, ds lors que vous ne faites que les lire. Quant la mmoire disponible, trois images ne seront vraiment pas un problme.

Vous pouvez toutefois perfectionner ce code, en faisant de Pic une proprit de App, afin de ne les charger qu’une fois :

Pic() as iOSImage // Rendre Public

Dans App :

Sub Open() Pic = Array(blue, Mozart, Gioconda) End Sub

Dans un bouton :

Sub Action() ImageView1.Image = App.pic(RandomInt(0,3)) End Sub

Merci, je crois que j’avance.

Seulement une petite prcision propos de votre exemple: dois-je faire

Pic as IOSImage = Array(blue, Mozart, Gioconda, ....suivi par les 197 autres noms d'image ?)

[quote=199660:@Gilles Rioux]Merci, je crois que j’avance.

Seulement une petite précision à propos de votre exemple: dois-je faire

Pic as IOSImage = Array(blue, Mozart, Gioconda, ....suivi par les 197 autres noms d'image ?) [/quote]

Ce serait très fouillis.

Faites plutôt

Pic.Append(blue) Pic.Append(red) Pic.Append(tree) etc...

En effet.

Mais je vais avoir l’impression de devenir un moine copiste attach son lutrin…

[quote=199671:@Gilles Rioux]En effet.

Mais je vais avoir l’impression de devenir un moine copiste attaché à son lutrin…[/quote]

Pas nécessairement. Vous pouvez gagner un temps considérable en utilisant un éditeur de texte pur ASCII tel que Eddie que j’utilise pour cela http://www.macupdate.com/app/mac/19658/eddie

Vous devez utiliser un éditeur ASCII comme Eddie comme intermédiaire, afin d’obtenir seulement le nom des fichiers.

  • Placez toutes les images dans un dossier
  • Sélectionnez-les toutes
  • Copiez (Cmd-C)
  • Dans Eddie, collez (Cmd-V) : vous obtenez tous les noms d’images
  • Sélectionnez tout cela, copiez
  • Ouvrez TextEdit, collez dedans
  • Faites un remplacement global des extensions pour les enlever (remplacer .jpg par rien par exemple)
  • Copier les noms d’images
  • Coller dans Xojo

Ensuite, copiez Pic.Append( , puis collez le devant chaque image avec Cmd-V, flèche en bas, et ainsi de suite.
Il ne vous restera plus après cela qu’à fermer toutes les parenthèses.

Certes, il reste du travail, mais vous n’avez pas à copier les noms d’images. Il ne vous reste plus qu’à créer un dosseir dans votre project (Insert/Folder), puis à déposer toutes les images dedans.

On pourrait aussi concevoir un programme en Xojo qui collecte tous les noms de fichiers dans un dossier, les nettoie de leurs extensions, puis crée les lignes de code. mais c’est une autre histoire.

Excellent.

Une bonne nuit de sommeil et j’essaie cela ds potron-minet.

Sinon, on peut nommer les images avec un numro “Pic001, Pic002, Pic003”. Ensuite une simple boucle et c’est rentr.

@Mathieu Fay Je note pour la prochaine fois, merci.