如何将照片添加到OSX的iPhone模拟器?
我有我的Mac上的照片,我想添加到iPhone模拟器来testing我的应用程序。
换句话说:我如何将照片添加到iPhone模拟器?
编辑:iPhone模拟器4.0呢? iPhone模拟器3.0和4.0的工作方式不同。
预先感谢帮助我…
在Mac中打开存储图像的窗口。
打开你的模拟器另一边。
现在将你的图像从mac窗口拖到模拟器,
模拟器将打开safari,并在safari选项卡中显示您的图像。
点击并按下模拟器中的图像,
会有消息“保存图像”,
保存图片。
它将被添加到你的iPhone模拟器。
编辑:
首先看看下面的图片。
在iPhone模拟器4.0(iphone / iphone模拟器),本身它维护一个sqlite数据库添加图像。 所以,如果你想复制粘贴系统 – 首先使插入条目,然后复制粘贴。 那将是荒谬的方式。
好。 让我来解释一下更简单的方法。
- 打开您想要在模拟器中添加批量图像的查找器。
- 将第一张图片拖放到iphone模拟器中
- 在图像上 – 点击并按住1秒。
- 将出现操作表 – 点击保存选项
- 对所有图像重复相同的过程
- 这将做sqlite条目也。
- 现在打开/ Users / YourUserName / Library / Application Support / iPhone Simulator / 4.0
- 进行媒体目录的备份。 (例如复制并粘贴到桌面上)
- 当你重置你的iPhone模拟器,所有的图像将会消失
- 你不需要重复所有的过程,你已经备份了。
- 只需从备份复制和粘贴到4.0
sagar的答案更容易理解:
打开一个Finder窗口,您的图像存储在哪里和iPhone模拟器。 然后将图像从Finder窗口拖入模拟器。 模拟器将打开您的图像的Safari。 点击并按住将图像保存到iPhone相机胶卷。 您现在可以像平常一样使用这些图像。
我最近也有同样的问题。 如果您一次只做一个,那么在Safari上放置照片的方法就可以运行得很好。 对于几个图像,我发现了一个很好的博客文章 ,解释模拟器在哪里find它的图像。
相同的海报链接到一个bash脚本来加载一个图像的目录到模拟器。 我现在使用这个将我的模拟器的环境重置为已知的良好状态,作为我的构build的一部分。 这样,我可以保留我的图像与我的代码,而不是根据模拟器的目录树的状态。
编辑原始脚本是在似乎已经消失的服务器上。 我在这里粘贴了iPhone SDK 3.0所需的更改。 对于脚本的信用适当地去“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 "<folder>" 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
对于一些图片:
- 将图像文件添加到文件夹 – >
- 将文件夹添加到xcode project->
(这将保持这个项目的一切,文件夹可以从项目中删除您的判断)
- 在同一个窗口中打开xcode和模拟器 – >
- 在模拟器 – >中打开“照片应用程序”
- 从xcode拖放到模拟器 – >
(图像将在safari中打开)
- 在模拟器 – >中单击并按住图像
- selectsave->
图像现在将在模拟器的“照片应用”相册中。 这对我来说是最快最干净的方式。
3个简单的步骤
1)拖放图像到模拟器上
– 这将打开一个浏览器与您的形象
2)点击并按住图像
– 这将打开选项
3)保存图像
– 这将复制图像到模拟器上
观看YouTubevideo(将图像添加到iphone模拟器)
我编辑了这个脚本来创build一个适用于iPhone 4.0.1模拟器的结构。 在我的系统上我有iPhone模拟器3.2,4.0和4.0.1的子文件夹。 所以我保留了脚本的原始输出并修改了结构,因为它需要为缩略图创build一个PhotoData文件夹。 运行脚本之后,我为3.2 4.0和4.0.1模拟器目录创buildsym链接,如下所示:
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
将来运行的脚本将更新所有模拟器。 这是修改的脚本:
#!/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 "<folder>" 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
我已经更新脚本来尝试向SqlLite数据库添加足够的数据。 只要从Safari浏览器保存照片,就会input以下数据:
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
照片表数据似乎很简单,虽然我目前假设captureTime是不相关的。 PhotoExtras的东西有点更多的参与,似乎是必要的,因为我目前的脚本,这需要图像磁砖识别命令,不起作用。
标识符1是目录名称标识符2是jpg名称标识符3是以字节为单位的文件大小
如果任何人都可以帮助别人..
现在的脚本如下:
#!/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 "<folder>" 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
如果我进一步了,我会编辑,下一步是识别各种.ithmb文件包含的内容。 希望某种堆栈的JPG缩略图。
我一直在使用我最初在iPhone Dev SDK中find的自动化技术。 将这些图像包含在您应用程序的资源中,然后:
UIImage *image = [UIImage imageWithName:@"imageName.jpg"]; UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);