Obtenir les images depuis la phototèque, avec UIImagePickerController ?

apocaalypsoapocaalypso Membre
juin 2009 modifié dans API UIKit #1
Bonjour,

Je souhaite obtenir mettons x images de la phototèque de l'utilisateur et les afficher à  l'écran. Mais je voudrais savoir comment faire ?
Je me suis renseigné du côté de UIImagePickerController et j'ai lu la doc mais je n'ai pas réussi à  tirer des informations ni même à  partir de Google.

Merci d'avance !

Réponses

  • CrazyJoCrazyJo Membre
    02:34 modifié #2
  • AliGatorAliGator Membre, Modérateur
    02:34 modifié #3
    Je pense que la question était de récupérer une sorte de tableau de toutes les images présentes dans la photothèque de l'iPhone, pour pouvoir en choisir par exemple 5 au hasard dans le tableau et les afficher... et ceci entièrement par code sans intervention de l'utilisateur via un UIImagePickerController, c'est ça ? Pour qu'il n'ait pas à  les choisir une par une ?
    Et si c'est ça je suis pas sûr que ce soit faisable :-/
  • apocaalypsoapocaalypso Membre
    juin 2009 modifié #4
    Oui c'est ça. Il y a des logiciels qui font ça afin d'afficher les images d'une certaine façon.
  • apocaalypsoapocaalypso Membre
    02:34 modifié #5
    En fait, ce serai plutôt stocker toutes ces images dans un NSArray.
  • zoczoc Membre
    02:34 modifié #6
    dans 1244100059:

    Oui c'est ça. Il y a des logiciels qui font ça afin d'afficher les images d'une certaine façon.


    Tu as des exemples d'application qui font ça ?

    Parce qu'il n'y a absolument rien dans le SDK officiel qui puisse énumérer les photos de la photothèque.
  • apocaalypsoapocaalypso Membre
    juin 2009 modifié #7
    Je n'arrive plus à  la retrouver mais il y en a une qui est sortie il n'y a pas longtemps qui affiche ses photos sur les murs d'une maison virtuelle.

    Ou encore celle-ci :
    http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=303102636&mt=8
  • DrakenDraken Membre
    02:34 modifié #8
    Le logiciel dont tu donnes la référence est myPhotoEgg. En lisant les commentaires je vois que les gens se plaignent que l'importation des images ne se fasse que une par une.

    Cela signifie peut être que l'importation des images à  partir de la photothèque est bridée, enfin avec l'OS 2.0 ?

    Est-ce que tu arrive au moins a récupérer une image de la photothèque ? * mode intéressé *



  • AliGatorAliGator Membre, Modérateur
    02:34 modifié #9
    Bah pour récupérer une image de la photothèque sur l'iPhone, y'a qu'une seule possibilité avec les méthodes officielles du SDK, c'est d'utiliser UIImagePickerController... qui présente une interface à  l'utilisateur pour lui permettre de choisir une image dans la photothèque (ou annuler), puis la rogner (ou pas), puis retourner à  ton programme.

    Je ne connais aucun moyen, même avec le SDK 3.0, d'obtenir plusieurs images de la photothèque d'un coup, ni même de boucler sur les images de la photothèque, sans demander à  l'utilisateur de les sélectionner une par une.
  • DrakenDraken Membre
    02:34 modifié #10
    Sur BFM Radio j'ai entendu un expert en sécurité informatique dire que l'iPhone est une vrai passoire au niveau de la sécurité. Qu'une application peut voir accès à  l'intégralité des répertoires de la machine,  pour lire ou écrire n'importe quel fichier.

    Bon, il parlait de l'OS 2.0, et cherchait probablement à  vendre sa sauce d'expert. Ceci dit, avait-il raison ? Peut-on accéder à  tous les dossiers à  partir d'une application ? Et donc au dossier contenant les images de la photothèque ?





  • apocaalypsoapocaalypso Membre
    02:34 modifié #11
    Merci de vos réponses !
    Non je n'ai pas essayer, la méthode UIImagePickerController enlèverai tout le concept de mon application.
    Et puis de toute façon, si l'on commence à  magouiller dans les dossiers etc..., on risque d'avoir quelques problèmes au moment de la validation de l'app.
  • AliGatorAliGator Membre, Modérateur
    02:34 modifié #12
    dans 1244291240:
    Sur BFM Radio j'ai entendu un expert en sécurité informatique dire que l'iPhone est une vrai passoire au niveau de la sécurité. Qu'une application peut voir accès à  l'intégralité des répertoires de la machine,  pour lire ou écrire n'importe quel fichier.

    Bon, il parlait de l'OS 2.0, et cherchait probablement à  vendre sa sauce d'expert. Ceci dit, avait-il raison ? Peut-on accéder à  tous les dossiers à  partir d'une application ? Et donc au dossier contenant les images de la photothèque ?
    Mince, on est déjà  le premier avril ? ;)
    Mouarf, il me fait bien rire ton "expert", il s'est auto-proclamé expert ou quoi ? :)

    Plus sérieusement, justement un des points clés de l'iPhone OS, dès sa version 1 d'ailleurs, c'est le sandboxing (sandbox = "bac à  sable" en bon français), qui fait justement que chaque application ne peut accéder qu'à  son propre répertoire et est isolé du reste des autres applications.
    L'accès au système de fichiers sur iPhone est d'ailleurs énormément restreint, on ne peux accéder qu'à  un dossier "Documents" propre à  chaque application (chaque appli a le sien) et pas aux autres, et on ne peux pas accéder à  l'underlying filesystem (système de fichiers interne) donc on ne peux pas fouiller dans les fichiers pour essayer d'avoir accès aux photos ou mails ou SMS ou autre trucs qui pourraient être stockés sur l'iPhone, puisque l'accès à  ce filesystem est bloqué.

    Voir toutes les docs sur le Dev Center au sujet de la sécurité, entre autres The Application Sandbox ou Files and Networking
    For security purposes, your application is placed in its own directory and is limited to reading and writing files in that directory only.
  • DrakenDraken Membre
    02:34 modifié #13
    Ouf, nous sommes sauvés !

    Expert auto-proclamé  >:)

    Par contre, je me pose une question. Est-ce deux applications peuvent communiquer ensemble ? Par exemple comment intégrer une extension payante à  un jeu ? L'application contenant l'extension doit accéder d'une manière ou d'une autre au dossier du jeu pour lui donner les nouveaux éléments (graphismes, sons, etc..).

    Certains jeux OS 2.0 utilisent ce genre de mécanisme, comme par exemple des recharges de points pour des MMO iPhones.



  • zoczoc Membre
    juin 2009 modifié #14
    dans 1244301193:
    Est-ce deux applications peuvent communiquer ensemble ?


    Non.

    Et personnellement je n'ai jamais vu d'application ajoutant des extensions à  une application de l'AppStore. Toutes les applications proposant des extension doivent elles-même les télécharger. C'est d'ailleurs pour simplifier le travail des programmeurs qui veulent faire des extensions payantes que Apple a développé le framework "StoreKit" du firmware 3.0.
  • DrakenDraken Membre
    juin 2009 modifié #15
    Recharge de 400 points pour un jeu iPhone multijoueur :

    http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=301344906&mt=8

    Cette recharge coûte 14,99 euros. Il y en a d'autres à  différents tarifs.

    Il y a bien une information qui passe d'une manière ou d'une autre, et ce en OS 2.0. A moins que l'application de recharge ne fasse que créditer un compte sur un site central, gérant les droits d'accès dans le MMO.

  • AliGatorAliGator Membre, Modérateur
    02:34 modifié #16
    Oui ça ne peut faire ça que comme ça pour l'instant en attendant le StoreKit, qui lui permettra depuis une application de faire des achats d'extensions pour ladite application (achat d'armes ou de points pour les jeux, achat d'eBooks pour les logiciels de lecteurs de livres électroniques, achats de nouvelles BDs pour le logiciel de lecture de BDs, ...), mais en OS <3.0 c'est encore impossible.

    Bien sûr tout ce que j'avance là , c'est sous réserve évidemment que vous n'ayez pas jailbreaké votre iPhone. Car si on commence à  jailbreaker l'iPhone puis à  lui installer un accès ssh puis à  accéder à  son filesystem depuis le mac, là  c'est autre chose... mais bon en même temps c'est normal, on crack le système et ou ouvre les failles de sécurité volontairement quand on fait ça (justement pour pouvoir par exemple installer des applications sans passer par l'AppStore, mais de façon illégale du coup)... alors qu'on vienne pas se plaindre dans ce cas particulier de failles de sécurité. Dans le cas où l'on utilise son iPhone normalement et qu'on le jailbreak pas, là  le sandboxing fait toujours foi et les impossibilités de modifier une application depuis l'extérieur aussi.

    D'ailleurs c'est explicitement indiqué dans le License Agreement du SDK de l'iPhone : il est interdit d'utiliser des langages interprétés ou de faire des plugins ou extensions ou autre qui modifieraient dynamiquement votre application (pour la simple raison que dans ce cas Apple ne peut pas valider, en cas de modification dynamique de l'appli par une extension, qu'il n'y ait pas dérive).
    3.3.2 An Application may not itself install or launch other executable code by any
    g without limitation through the use of a plug-in architecture, calling other
    frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in
    an Application except for code that is interpreted and run by Apple's Published APIs and built-
    in interpreter(s).

    3.3.3 Without Apple's prior written approval, an Application may not provide, unlock or
    enable additional features or functionality through distribution mechanisms other than the App
    Store.

    3.3.4 An Application may write data on a device only to the Application's designated
    container area, except as otherwise specified by Apple.

  • zoczoc Membre
    02:34 modifié #17
    dans 1244304701:
    A moins que l'application de recharge ne fasse que créditer un compte sur un site central, gérant les droits d'accès dans le MMO.


    C'est clairement cela. Il n'y a pas d'autre moyen de toute façon...
Connectez-vous ou Inscrivez-vous pour répondre.