Comment append des photos au simulateur iPhone pour OSX?

J’ai des photos sur mon Mac que je voudrais append au iPhone Simulator pour tester mon application.

En d’autres termes: comment append des photos au simulateur iPhone?

Edit: Qu’en est-il de l’iPhone Simulator 4.0? iphone simulator 3.0 et 4.0 fonctionnent tous deux différemment.

Merci d’avance de m’aider …

Ouvrez la fenêtre dans mac où vos images sont stockées.

Ouvrez votre simulateur d’un autre côté.

Maintenant, faites glisser votre image de la fenêtre mac vers le simulateur,

Le simulateur ouvrira le safari et, dans un onglet Safari, votre image sera affichée.

Touchez et appuyez sur l’image dans le simulateur,

Il y aura un message pour “enregistrer l’image”,

enregistrer l’image.

Il sera ajouté à votre simulateur d’iPhone.

Modifier :

Tout d’abord, regardez l’image suivante.

texte alt

Dans iPhone simulator 4.0 (iphone / iphone simulator), il gère lui-même une firebase database sqlite pour les images ajoutées. Donc, si vous voulez copier coller le système, commencez par insérer des entrées et copiez-les ensuite. Ce serait une façon ridicule.

D’accord. Laissez-moi vous expliquer une façon plus simple de le faire.

  • ouvrez le viseur dans lequel vous avez des images en bloc que vous souhaitez append dans le simulateur.
  • faites glisser et déposez la première image dans le simulateur d’iphone
  • sur l’image – touchez et maintenez pendant 1 seconde.
  • la feuille d’action apparaîtra – touchez l’option d’enregistrement
  • Répéter le même processus pour toutes les images
  • Cela fera aussi des entrées sqlite.
  • maintenant, ouvrez / Users / YourUserName / Library / Application Support / iPhone Simulator / 4.0
  • Faites une sauvegarde du répertoire Media. (par exemple, copiez-le et collez-le sur le bureau)
  • Lorsque vous réinitialisez votre simulateur d’iphone, toutes les images disparaîtront
  • vous n’avez pas besoin de répéter tout le processus, vous avez sauvegardé le tout.
  • Il suffit de copier et coller à partir de 4,0

texte alt

Une version plus facile à comprendre de la réponse de sagar:

Ouvrez une fenêtre du Finder où vos images sont stockées et le simulateur iPhone. Faites ensuite glisser les images de la fenêtre du Finder dans le simulateur. Le simulateur ouvrira Safari avec votre image. Cliquez et maintenez pour enregistrer l’image sur le rouleau de caméra de l’iPhone. Vous pouvez maintenant utiliser ces images comme vous le feriez normalement.

J’ai eu la même question récemment. L’approche drop-the-photo-on-Safari fonctionne assez bien si vous en faites une à la fois. Pour plusieurs images à la fois, j’ai trouvé un excellent article de blog qui explique où le simulateur trouve ses images.

Le même poster est lié à un script bash pour charger un répertoire d’images dans le simulateur. J’utilise maintenant ceci pour réinitialiser l’environnement de mon simulateur à un état connu dans le cadre de ma construction. De cette façon, je peux conserver mes images avec mon code au lieu de dépendre de l’état de l’arborescence du répertoire du simulateur.

EDIT Le script original était sur un serveur qui semble avoir disparu. Je l’ai collé ici avec le changement nécessaire pour iPhone SDK 3.0. Crédit pour le script va correctement à l’auteur de “Of Code and Men”.

#!/bin/bash simPath="$HOME/Library/Application Support/iPhone Simulator/User/Media/DCIM/100APPLE" thmPath="$simPath/.MISC" if [ -z "$1" ]; then echo usage: $0 "" exit 1 fi if [ ! -d "$simPath" ]; then mkdir -p "$simPath" mkdir -p "$thmPath" fi # Find out which incremential number we're at currently. index=1 for i in `ls $1/*.{jpg,png,gif,bmp} 2>/dev/null`; do while [ -f "$simPath/`printf IMG_%04d.JPG $index`" ]; do let index=$index+1 done jpgName=`printf IMG_%04d.JPG $index` thmName=`printf IMG_%04d.THM $index` echo $i "->" $simPath/$jpgName sips -s format jpeg $i --out "$simPath/$jpgName" > /dev/null 2> /dev/null || continue sips -s format jpeg -z 96 96 $i --out "$thmPath/$thmName" > /dev/null 2> /dev/null || continue let index=$index+1 done 

Pour quelques images:

  • Ajouter des fichiers image au dossier->
  • Ajouter un dossier au projet xcode->

(cela gardera tout ensemble pour ce projet et le dossier peut être retiré du projet à votre discrétion)

  • ouvrir xcode et simulateur dans la même fenêtre->
  • ouvrir “application photos” dans simulateur->
  • glisser-déposer de xcode à simulateur->

(image (s) s’ouvrira en safari)

  • cliquez et maintenez l’image dans le simulateur->
  • a choisi sauvegarder->

Les images seront désormais dans l’album “photos app” du simulateur. C’était la façon la plus rapide et la plus propre pour moi.

3 étapes simples

1) Glissez-déposez l’image sur le simulateur
– cela ouvrira un navigateur avec votre image
2) Cliquez et maintenez l’image
– cela ouvrira les options
3) enregistrer l’image
– cela copiera l’image sur le simulateur
Regarder la vidéo sur YouTube (append des images au simulateur d’iphone)

J’ai édité le script pour créer une structure qui fonctionne avec le simulateur iPhone 4.0.1. Sur mon système, j’ai des sous-dossiers pour iphone simulator 3.2, 4.0 et 4.0.1. J’ai donc conservé la sortie d’origine du script et modifié la structure pour créer un dossier PhotoData pour les vignettes. Après avoir exécuté le script, je crée des liens sym pour les répertoires de simulateur 3.2 4.0 et 4.0.1 comme suit:

 ln -s $HOME/Library/Application\ Support/iPhone\ Simulator/User/Media/DCIM/ $HOME/Library/Application\ Support/iPhone\ Simulator/4.0.1/Media/DCIM ln -s $HOME/Library/Application\ Support/iPhone\ Simulator/User/Media/PhotoData/ $HOME/Library/Application\ Support/iPhone\ Simulator/4.0.1/Media/PhotoData 

les futures exécutions du script mettront à jour tous les simulateurs. Voici le script modifié:

 #!/bin/bash rootPath="$HOME/Library/Application Support/iPhone Simulator/User/Media" relPath="100APPLE" simPath="$rootPath/DCIM/$relPath" thmPath="$rootPath/PhotoData/$relPath" if [ -z "$1" ]; then echo usage: $0 "" exit 1 fi if [ ! -d "$simPath" ]; then mkdir -p "$simPath" mkdir -p "$thmPath" fi echo "Finding pictures..." # Find out which incremential number we're at currently. index=1 for i in `ls $1/*.{JPG,jpg,png,gif,bmp} 2>/dev/null`; do echo "considering $i..." while [ -f "$simPath/`printf IMG_%04d.JPG $index`" ]; do let index=$index+1 done jpgName=`printf IMG_%04d.JPG $index` thmName=`printf IMG_%04d.THM $index` echo $i "->" $simPath/$jpgName echo $i "->" $thmPath/$thmName sips -s format jpeg $i --out "$simPath/$jpgName" > /dev/null 2> /dev/null || continue sips -s format jpeg -z 96 96 $i --out "$thmPath/$thmName" > /dev/null 2> /dev/null || continue let index=$index+1 done 

J’ai mis à jour le script pour essayer d’append suffisamment de données aux bases de données SqlLite. Dès que vous enregistrez une photo à partir de safari, les données suivantes sont entrées:

 sqlite> select * from Photo; primaryKey|type|title|captureTime|width|height|userRating|flagged|thumbnailIndex|orientation|directory|filename|duration|recordModDate 43|0|IMG_0037|320336214.0|640|427|0|0|0|1|DCIM/100APPLE|IMG_0037.JPG|0.0|320336214.933387 sqlite> select * from PhotoExtras; primaryKey|foreignKey|identifier|sequence|value 142|43|1|-1|DCIM/100APPLE 143|43|2|-1|IMG_0037.JPG 144|43|3|-1|76616 145|43|6|-1| streamtyped???@???NSMutableDictionary 146|43|7|-1|286 147|43|8|-1| streamtyped???@???NSValue 148|43|9|-1|8252 149|43|10|-1|1 150|43|13|-1|0 

Les données de la table Photo semblent assez simples, même si je suppose que CaptureTime n’est pas pertinent. Les éléments PhotoExtras sont un peu plus compliqués et semblent nécessaires car mon script actuel, qui nécessite une commande identifiant les images magiques, ne fonctionne pas.

l’identifiant 1 est l’identifiant du nom du répertoire 2 l’identifiant du nom jpg 3 est la taille du fichier en octets

Si quelqu’un peut aider avec les autres ..

Le script tel quel est ci-dessous:

 #!/bin/bash rootPath="$HOME/Library/Application Support/iPhone Simulator/4.2/Media" relPath="100APPLE" simPath="$rootPath/DCIM/$relPath" sqlDB="$rootPath/PhotoData/Photos.sqlite" if [ -z "$1" ]; then echo usage: $0 "" exit 1 fi if [ ! -d "$simPath" ]; then mkdir -p "$simPath" fi echo "Finding pictures..." # Find out which incremential number we're at currently. index=1 for i in `ls $1/*.{JPG,jpg,png,gif,bmp} 2>/dev/null`; do echo "considering $i..." while [ -f "$simPath/`printf IMG_%04d.JPG $index`" ]; do let index=$index+1 done imgName=`printf IMG_%04d $index` jpgName=`printf IMG_%04d.JPG $index` thmName=`printf IMG_%04d.THM $index` jpgWidth=`identify -format %w $i` jpgHeight=`identify -format %h $i` echo $i "->" $simPath/$jpgName jpgSize=`stat -f %z $i` jpgDir="DCIM/100APPLE" sips -s format jpeg $i --out "$simPath/$jpgName" > /dev/null 2> /dev/null || continue sqlite3 "$sqlDB" "insert into Photo (title,width,height,directory,filename) values ('$imgName',$jpgWidth,$jpgHeight,'$jpgDir','$jpgName')" foreignKey=`sqlite3 "$sqlDB" "select primaryKey from Photo where title='$imgName'"` sqlite3 "$sqlDB" "insert into PhotoExtras (foreignKey,identifier,value) values ($foreignKey,1,'$jpgDir'); \ insert into PhotoExtras (foreignKey,identifier,value) values ($foreignKey,2,'$jpgName'); \ insert into PhotoExtras (foreignKey,identifier,value) values ($foreignKey,3,$jpgSize);" let index=$index+1 done 

Je vais modifier si je vais plus loin, la prochaine étape est d’identifier ce que contiennent les différents fichiers .ithmb. Espérons une sorte de stack de vignettes jpg.

J’ai utilisé une technique automatisée que j’ai initialement trouvée sur iPhone Dev SDK. Incluez les images dans les ressources de votre application, puis:

 UIImage *image = [UIImage imageWithName:@"imageName.jpg"]; UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 

http://www.iphonedevsdk.com/forum/iphone-sdk-development/2225-no-photos-in-iphone-simulator-how-to-add-photos.html