He estado actualizando el script para tratar de agregar suficientes datos a las bases de datos SqlLite. Tan pronto como se guarda una foto de Safari se introduce los siguientes datos: mesa
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|
[email protected]???NSMutableDictionary
146|43|7|-1|286
147|43|8|-1|
[email protected]???NSValue
148|43|9|-1|8252
149|43|10|-1|1
150|43|13|-1|0
La Foto de datos parece bastante simple, aunque actualmente estoy asumiendo captureTime no es relevante. El material de PhotoExtras es un poco más complicado y parece necesario ya que mi script actual, que necesita comandos de magia para identificar imágenes, no funciona.
identificador 1 es el nombre del directorio identificador 2 es el nombre jpg identificador 3 es el tamaño del archivo en bytes
Si alguien puede ayudar con los otros ..
La secuencia de comandos en su forma actual es el siguiente:
#!/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
Voy a editar si llego más lejos, la siguiente etapa es identificar lo que contienen los diversos archivos .ithmb. Esperemos que algún tipo de pila de miniaturas de jpg.
respuesta trabaja para iOS7, que es el duplicado pero no la respuesta aceptada: http://stackoverflow.com/a/19845346/317461 –