NoobLuck
06/12/2005, 03:39
EDITO: Segunda parte terminada.
Pues ya he hecho la primera parte, que escanea un directorio y te muestra información sobre las imágenes en él. Va un poco lento por que he usado la lib_SDL_image, y para obtener los datos primero tengo que cargar las imágenes en una Surface. Si alguien conoce otra libreria que pueda leer la info sin cargar... Probé las Devil, pero nada de nada, hay que cargar la imagen. ¿Teneis solución? De momento la velocidad es aceptable.
El programa tb comprueba que la extension de la imagen corresponda con el tipo de la misma. Si no corresponde avisa.
Para que lo saque en un fichero redirigís la salida estándar, si alguna imagen da error conviene arreglar nuestras iagenes y hacer un archivo de nuevo, sin los errores.
Hay que estar en el directorio que se quiere comprobar, tb tiene una opción recursiva.
La segunda parte compararia un directorio con el fichero dado y buscaria las diferencias y las imagenes que no se corresponden.
Nuevas versiones..., se agredecen comentarios sobre el codigo, es GPL, va en linux, hay que hacer make y make install.
En resumen:
listimage -R
Da algo como esto:
DIR . 4 0
./FMA_1280x1024.jpg 1280 960 24
./Splash-RedLight.png 450 320 32
./hinata.jpg 241 214 24
./hinata50x50.jpg 50 44 24
./body.png 320 240 24
OK!
Que viene a ser anchura altura y profundidad de color.
En los directorios el número de archivos, seguido del número de directorios.
La segunda parte, para el archivo que genera el primer programa cuando no hay errores, compara esa información con la de los archivos del árbol de directorios con raíz en el directorio actual.
~$ cd pics
~/pics$ ls
FMA_1280x1024.jpg hinata50x50.jpg hinata.jpg Splash-RedLight.png
~/pics$ listimages -R > lista
OK!
~/pics$ cat lista
DIR . 4 0
./FMA_1280x1024.jpg 1280 960 24
./Splash-RedLight.png 450 320 32
./hinata.jpg 241 214 24
./hinata50x50.jpg 50 44 24
~/pics$ checkimages lista
1: .
2: ./FMA_1280x1024.jpg 1280 960 24
3: ./Splash-RedLight.png 450 320 32
4: ./hinata.jpg 241 214 24
5: ./hinata50x50.jpg 50 44 24
OK!
~/pics$ emacs lista
~/pics$ cat lista
DIR . 4 0
./FMA_1280x1024.jpg 1280 960 24
./Splash-RedLight.png 452 321 38
./hinata.jpg 241 214 24
./hinata50x50.jpg 50 44 24
~/pics$ rm hinata50x50.jpg
~/pics$ checkimages lista
1: .
2: ./FMA_1280x1024.jpg 1280 960 24
3: ERROR: ./Splash-RedLight.png has incorrect width.
3: ERROR: ./Splash-RedLight.png has incorrect height.
3: ERROR: ./Splash-RedLight.png has incorrect depth.
4: ./hinata.jpg 241 214 24
5: ERROR: Can't open ./hinata50x50.jpg for read: Couldn't open ./hinata50x50.jpg
5: ERROR: Can't load ./hinata50x50.jpg: Couldn't open ./hinata50x50.jpg
Esto es como funciona y ya está.
En el readme y la ayuda está todo explicado, lo que hay que cumplir para que funcione y los tipos de imagen soportados.
Pues ya he hecho la primera parte, que escanea un directorio y te muestra información sobre las imágenes en él. Va un poco lento por que he usado la lib_SDL_image, y para obtener los datos primero tengo que cargar las imágenes en una Surface. Si alguien conoce otra libreria que pueda leer la info sin cargar... Probé las Devil, pero nada de nada, hay que cargar la imagen. ¿Teneis solución? De momento la velocidad es aceptable.
El programa tb comprueba que la extension de la imagen corresponda con el tipo de la misma. Si no corresponde avisa.
Para que lo saque en un fichero redirigís la salida estándar, si alguna imagen da error conviene arreglar nuestras iagenes y hacer un archivo de nuevo, sin los errores.
Hay que estar en el directorio que se quiere comprobar, tb tiene una opción recursiva.
La segunda parte compararia un directorio con el fichero dado y buscaria las diferencias y las imagenes que no se corresponden.
Nuevas versiones..., se agredecen comentarios sobre el codigo, es GPL, va en linux, hay que hacer make y make install.
En resumen:
listimage -R
Da algo como esto:
DIR . 4 0
./FMA_1280x1024.jpg 1280 960 24
./Splash-RedLight.png 450 320 32
./hinata.jpg 241 214 24
./hinata50x50.jpg 50 44 24
./body.png 320 240 24
OK!
Que viene a ser anchura altura y profundidad de color.
En los directorios el número de archivos, seguido del número de directorios.
La segunda parte, para el archivo que genera el primer programa cuando no hay errores, compara esa información con la de los archivos del árbol de directorios con raíz en el directorio actual.
~$ cd pics
~/pics$ ls
FMA_1280x1024.jpg hinata50x50.jpg hinata.jpg Splash-RedLight.png
~/pics$ listimages -R > lista
OK!
~/pics$ cat lista
DIR . 4 0
./FMA_1280x1024.jpg 1280 960 24
./Splash-RedLight.png 450 320 32
./hinata.jpg 241 214 24
./hinata50x50.jpg 50 44 24
~/pics$ checkimages lista
1: .
2: ./FMA_1280x1024.jpg 1280 960 24
3: ./Splash-RedLight.png 450 320 32
4: ./hinata.jpg 241 214 24
5: ./hinata50x50.jpg 50 44 24
OK!
~/pics$ emacs lista
~/pics$ cat lista
DIR . 4 0
./FMA_1280x1024.jpg 1280 960 24
./Splash-RedLight.png 452 321 38
./hinata.jpg 241 214 24
./hinata50x50.jpg 50 44 24
~/pics$ rm hinata50x50.jpg
~/pics$ checkimages lista
1: .
2: ./FMA_1280x1024.jpg 1280 960 24
3: ERROR: ./Splash-RedLight.png has incorrect width.
3: ERROR: ./Splash-RedLight.png has incorrect height.
3: ERROR: ./Splash-RedLight.png has incorrect depth.
4: ./hinata.jpg 241 214 24
5: ERROR: Can't open ./hinata50x50.jpg for read: Couldn't open ./hinata50x50.jpg
5: ERROR: Can't load ./hinata50x50.jpg: Couldn't open ./hinata50x50.jpg
Esto es como funciona y ya está.
En el readme y la ayuda está todo explicado, lo que hay que cumplir para que funcione y los tipos de imagen soportados.