Blog multi-temático de Antonio Castro

opinión, literatura, ciencia, tecnología, ciencia ficción, autoedición, política, ateismo, actualidad

temas de ciberdroide.com

Etiqueta: ImageMagick

¿Cómo hacer vídeos usando time-lapse? (Tutorial)

Este artículo ha sido reeditado y trasladado a mi Foto-Blog.

Puedes pinchar en el título del artículo para ver su contenido.

Lamento las molestias que pueda ocasionar este traslado.

Intervalómetro Phottix

Lo único que necesitas para realizar un vídeo con la técnica time-lapse, es un intervalómetro,  un trípode robusto, una tarjeta de memoria con capacidad suficiente, y una cámara de fotos digital.  Para hacer un solo minuto de vídeo necesitarás hacer 60*25= 1500 fotos. Conviene elegir resoluciones bajas para no rebasar la capacidad de la tarjeta de memoria.

Yo uso el  Intervalómetro PHOTTIX NIKOS, pero hay muchos y la elección de marca y modelo no es algo demasiado crítico. La máquina de fotos tampoco tiene que ser una demasiado buena para hacer un vídeo con time-lapse.

Piensa que para un vídeo en calidad HD te basta una resolución de 1920×1080. Si usas resoluciones muy grandes cabrán pocas fotos. El vídeo reproduce a 25 fotogramas por segundo las escenas que tú has capturado usando intervalos de varios segundos entre foto y foto. Por ello sale la escena muy acelerada. Yo he usado intervalos de 3 segundos y de cuatro, pero hay cámaras que necesitan un mínimo de tiempo mayor entre foto y foto para volcar la foto a memoria. La velocidad de acceso de la memoria influirá en este límite.

Un consejo, no uses  el autofocus.  Deja siempre enfocada la escena manualmente.  De esa forma se evita que las condiciones alteren a los sensores y estos produzcan pequeñas variaciones de enfoque a cada rato.  En mi primer time-lapse se nota al principio del mismo este fallo. Hay algunos fallos más como reflejos en el cristal de la ventana, los clásicos parpadeos, etc. Es el primer vídeo de este tipo que hago así que es normal. Pese a todos esos fallos no ha quedado mal del todo.

Una vez que has descargado las fotos a tu ordenador lo más habitual es recurrir a algún programa de edición de vídeo, pero si tienes nociones de programación y conoces algo ImageMagick no te resultará imprescindible. En Linux puedes compilar las fotos en un vídeo usando ffmpeg.

Puedes hacer una primera prueba de visualización eligiendo una resolución pequeña que respete las proporciones de las fotos originales.

Los formatos de vídeo digital usan cada vez más la proporción panorámica de 16:9 que yo os recomiendo para vuestros vídeos. Si necesitáis la máxima calidad,  recomiendo usar 1920×1080 que es la que usa la televisión de alta definición HDTV. Actualmente muchos profesionales trabajan la edición de vídeo en estos formatos, y es la calidad recomendable para guardar el producto final en forma de máster digital de vídeo. Esto facilita futuras reediciones a máxima calidad. Para Youtube en este momento recomiendo la 1280×720 que se guardará con calidad HD, y para vuestros borradores podéis usar 960×540. Todas ellas 16:9. Yo uso MP4 o AVI.

Las proporciones en fotografía (aspect ratio)  suelen ser diferentes de 16:9 pero habitualmente nos sobrará resolución para poder recortar la parte que nos interese de las mismas.  Esto variará el encuadre de las fotos, cosa que debes tener presente al situar tu cámara.

¿Cómo procesar las imágenes en Linux si no disponemos de editor de vídeo?

Imaginemos que nuestras fotos son de 2784×1856 (3:2). Serían solo 5 Mega Pixels y hay de sobra con eso para obtener un vídeo muy bueno.

Primero compila un vídeo respetando la proporción original de las fotos solo para echar un vistazo. (en mi caso mi Canon EOS 5D Mark II usa 3:2) .

Esto lo puedes hacer con el comando ffmepg,  pero necesitarías que las fotos empezaran numeradas desde el número 1.  En lugar de eso seguramente tendrás fotos con estos nombres img_235.jpg, img_236.jpg, … img_1225.jpg, img_1226.jpg.

Yo corregí  esto con ayuda de un pequeño script pensado para S.O. Linux. Si tu cámara no es una Canon puede que necesites adaptarlo.

 

#! /usr/bin/python
# -*- coding: latin1 -*-
###########################################################
# Procesa todos los ficheros '*.jpg' del directorio actual
# y crea una lista de links en un directorio 'jpegs'
# con nombres de la forma 'img_%d.jpg' donde %d es un numero
# que sigue la secuencia del 1 al ultimo numero de fichero
# siguiendo un orden alfabetico de los nombres de ficheros
# encontrados con el patron '*.jpg'.
# Esto permite aplicar el comando ffmpeg desde ese directorio
# para crear un video con esos fotogramas. Ejemplos:
# (16:9)
# ffmpeg -f image2 -i img_%d.jpg -sameq -s 960x540 out.avi
#  (3:2)
# ffmpeg -f image2 -i img_%d.jpg -sameq -s 900x600 out.avi
###########################################################

##################
def comando(comm):
	import os

	print comm
	os.system(comm)

############
def main():
	import sys, os

        finamelist=[]
	comando("mkdir jpegs")
	ListaFicheros=os.listdir('.')
	for fi in ListaFicheros:
		finame, ext= os.path.splitext(fi)
		if (ext=='.jpg'):
			finamelist.append(finame)
	n=1
	finamelist.sort()
	for fi in finamelist:
		comando ("cd jpegs ; ln -s ../%s.jpg img_%d.jpg" % (fi,n))
		n=n+1

##########################
if __name__ == "__main__":
	main()

Luego te sitúas en el directorio jpegs creado y usas el comando ffmpeg siguiente:

ffmepeg -i image2 img_%d.jpg -sameq out.avi

Con este primer vídeo podrás localizar las diferentes escenas que deben ser procesadas de alguna manera particular o simplemente suprimidas. Basta localizar el segundo y multiplicar por 25 y obtienes el número del fotograma.

Yo he realizado distintos tratamientos en distintos tramos, pero lo que siempre vas a necesitar es adaptar el formato original que puede venir como (3:2) a un aspecto panorámico (16:9). La división de 16/9 nos da el valor 1.77777. Usaremos este valor más adelante.

Para recortar las imágenes por arriba y por abajo a fin de obtener fotos de proporciones 16:9 uso ImageMagick dentro de un script.

Imaginemos que las fotos de nuestra cámara vinieran con un formato 2784×1856.  Lo ideal es cortar un poco por arriba y un poco por abajo. Recortar se hace con la opción crop del comando convert .

Ejemplo:

-crop ANCHOxALTO+X0+Y0

ANCHO=  2784  (Conservamos todo el ancho original).

ALTO= ANCHO/1.77777=1566

X0=0  (Esquina superior izquierda del recorte pegada al borde izquierdo)

Y0= 200 (Eleminamos 200 pixels de alto en la parte superior.

Podemos hacer dos comandos de convert para hacerlo todo.

convert -crop 2784×1566+0+200  img_1234.jpg TMP.jpg

convert -geometry 1920×1080!  -quality 90  TMP.jpg  fotogramas/img_1234.jpg

(Hemos tomado 1234 como número arbitrario de la foto. Solo es un ejemplo)

Es decir, primero recortamos, generamos un fichero temporal, y luego le damos la resolución definitiva 1929×1080, que necesitamos para un vídeo HD.

Esta forma de trabajo con scripts es un poco tediosa en el caso que necesites hacer diferentes tratamientos para cada tramo, cosa que yo sí he hecho. Los efectos de zoom los he hecho con scripts que recortaban progresivamente encuadres más pequeños, pero no voy a tratar ese tema ahora.

La utilidad convert de ImageMagick te permitirá muchas más cosas. Por ejemplo puedes usar -normalize para hacer que el color más oscuro de una foto se muestre como negro y el más claro como blanco estirando los valores intermedios consiguiendo un efecto contraste en la foto. Es imposible resumir aquí todo lo que te permite hacer esta utilidad. Se necesitaría un libro entero.

http://www.imagemagick.org/script/convert.php

Yo he tenido que programar varios scrips parcheándolos sucesivamente y no dispongo de scripts que sean demasiado útiles. Tendré que ir mejorándolos poco a poco y cuando tenga algo que considere de utilidad general lo ofreceré bajo licencia GPL, pero de momento no dispongo de nada que merezca la pena entregar.

La post-producción es muy importante en la calidad final del vídeo, y los pequeños trucos que yo acabo de mencionar suplen la falta de disponibilidad de buenos editores de vídeo que es con lo que suelen trabajar los profesionales.

Un sitio donde podréis encontrar abundante información sobre time-lapse es la Web de Antonio Casado.

http://www.timelapses.es/blog/

La lucha por una portada en Menéame y un truquito de propina.

No he podido evitarlo. Me parece gracioso el juego que se traen entre manos en Menéame. Tampoco es que esto merezca un comentario demasiado amplio, pero puse Ferrari en la búsqueda de Menéame y apareció el histórico de intentos de menear la noticia de que Ferrari fichará a Fernando Alonso.

Esto acerca a Alonso a Meneame.

Esto acerca a Alonso a Meneame.

Llevan un montón de tiempo con la cansina profecía de «Esto acerca a Alonso a Ferrari». Felicidades, ya es oficial y comprobamos que «esto acerca a Alonso a Meneame«, porque un montón de gente se lanzó sobre los teclados sin perder tiempo en verificar si la noticia ya estaba meneada supongo que por miedo a perder unos segundos valiosos. A diferencia de la F1, en Meneame llegar el segundo no da puntos.

Lo que hice después de esa búsqueda fue imprimir esa página y la siguiente desde Firefox, indicando que me volcara la impresión en ficheros PostScript. Sé que no tiene relación con la noticia, pero alguno se preguntará…

¿Cómo obtuve el gif animado desde ambos ficheros PostScript?

Generé un gif animado usando convert de ImageMagick. Tomé esos ficheros mozilla1.ps y mozilla2.ps como entrada y generé como salida ferrari.gif mediante el comando siguiente:

convert -delay 150 -geometry 250 mozilla1.ps mozilla2.ps ferrari.gif

Lo comento porque es un volcado super-cómodo de páginas de Internet y queda bastante bien. No lo había intentado nunca y es tan cómodo y tan eficaz que deseo compartirlo con vosotros. Espero que os guste el truquito. (Llevo años usando convert y no paro de sorprenderme).

 

 

¿Cómo ofrecer previsualizazión de documentos PDF en JPG?

Nuevamente recurriremos a convert de Imagemagick para crear una utilidad de descarga gratuita bajo licencia GPL. Esta  puede ser de utilidad para autoeditores que quieran ofrecer en sus propias páginas alguna previsualización del contenido de un libro en formato de imagen.

ficheropdf-2

De esa forma nadie podrá alterarlo y además incluirá una marca de agua para prevenir que alguien quiera hacer un uso indebido de estas imágenes. Lo denomino ‘pdf2jpg‘ Se trata de un script en lenguaje Python muy sencillito y fácil de adaptar a cualquier necesidad especial, que usará como comando externo el potente programa convert de ImageMagick. Yo lo tengo preparado para su uso directo desde consola en Linux, pero su uso en Windows ha de resultar también bastante sencillo. Se usa desde el intérprete de comandos:

Por ejemplo para convertir un fichero llamado fichero.pdf a imágenes de 600 pixels de ancho en jpeg en el que sobre escribiremos una marca de agua que ponga en diagonal a gran tamaño (tamaño 80) el literal ‘(C) 2008 Antonio Castro’ usaremos el comando:

pdf2jpg.py fichero.pdf 600 80 ‘(C) 2008 Antonio Castro’

En ancho de 600 pixels hará que la altura se escale respetando las proporciones originales de la página. En un libro con páginas de 6″x9″, obtendremos con ello imágenes de 600×900 pixels.

 

El programa generará una carpeta (subdirectorio) ‘pdf2jpg’ que contendrá las imágenes generadas. Hay que advertir que esta utilidad no está pensada para pasar grandes documentos con muchas páginas. No lo he intentado y un proceso así tardaría bastante y generaría una gran cantidad de imágenes que ocuparían bastante espacio. En Linux el programa convert va trabajando sobre el directorio /tmp/ y si todo va bien termina volcando las imágenes resultantes en el directorio pdf2jpg que ya hemos mencionado antes. El aspecto de estas imágenes puede comprobarse en una muestra de cinco páginas realizada sobre uno de mis libros. Pinche en una imagen para verla en su tamaño de 600×900.

0ficheropdf-01 1ficheropdf-1 2ficheropdf-21 3ficheropdf-3 4ficheropdf-4

 

Descargas Gratuitas

Puesto que con este ya son varios los programitas (scripts) de pequeñas utilidades en lenguaje Python de libre descarga bajo licencia GPL, voy a ir agrupando los fuentes en un único paquete descargable, porque son muy pequeños y ocupan muy poco. Lo he empaquetado con otras dos utilidades realizadas en lenguaje Python de las que ya hablé en su día, y pueden descargarse desde:

https://www.ciberdroide.com/wordpress/Descarga_Gratis/paquetes_copyleft/

 

La descripción del paquete con sus tres utilidades (‘3img1portada.py’, ‘ encriptar.py’, ‘pdf2jpg.py’) es la siguiente:

# ######################( 3img1portada.py Vers: 1.0 )#####################
# Este programa esta diseñado para tomar tres imágenes y combinarlas en una
# única imagen, y generar con ella un PDF que sirva para portadas de una sola pieza
# de libros de Lulú de 6"x9". Para otros formatos deberá ser adaptado.
# Seguramente para otros servicios de impresión bajo demanda sirva perfectamente.
# Le dediqué un artículo en mi Blog explicando su funcionamiento.
# ########################( encriptar.py Vers:1.0 )########################
# Este programa esta diseñado para encriptar y desencriptar ficheros.
# Usa un sistema de clave simétrica.
# Le dediqué un artículo en mi Blog explicando su funcionamiento.
# ########################( pdf2jpg.py Vers: 1.0 )#########################
# Este programa esta diseñado para tomar un documento PDF y entregar las páginas
# como imagenes en formato JPG añadiendo una marca de agua. Por ejemplo para un
# fichero PDF con páginas de 6"x9" podríamos usar el comando:
# pdf2jpg.py fichero.pdf 600 80 '(C) 2008 Antonio Castro'
# Lo normal es partir de un documento con un reducido número de páginas a modo de
# previsualización para ofrecer una pequeña muestra.
# Le dediqué un artículo en mi Blog explicando su funcionamiento.
# ##########################################################################

 

Diseñando una portada completa en PDF para publicar un libro en Lulú. (II)

Sé que esto interesa solo a una minoría, (escritores que además son autoeditores, y que además usan Software Libre) pero seguramente esa minoría me agradecerá mucho esto.

Para otros (la mayoría) esto debe parecer una interminable historia.  Primero publique esto:
Diseñando una portada completa en PDF para publicar un libro en Lulú.
https://www.ciberdroide.com/wordpress/?p=473

Luego me enfadé bastante y escribí esto otro.

Trato discriminatorio de Lulú con los usuarios de Software Libre.
https://www.ciberdroide.com/wordpress/?cat=6

El problema no es que Lulú tenga intención alguna de discriminar, pero el resultado nos discrimina a los usuarios de software libre. ¿Va Lulú a proporcionar una herramienta o una información que podría ser usada para generar portadas que pueden ser utilizadas en servicios de impresión bajo demanda distintos de Lulú? Ignoro sinceramente cual es motivo real, pero Lulú no ofrece una ayuda que podría ofrecer si quisiera. Eso en el caso de las portadas de una sola pieza nos perjudica especialmente a los usuarios de Software Libre. Pretendo acabar con eso en este artículo.

Dije que seguiría investigando, y por fin acabo de recibir mi primer libro generado íntegramente con software libre. Se da la circunstancia de que no sé de nadie que lograra generar el PDF de una portada de una sola pieza usando Software Libre.  Es un tema que lleva coleando años, y yo he insistido y he mareado a Lulú para intentar que me dijera como lograrlo. Las ayudas de Lulú no fueron tales, no sirvieron para nada. En lugar de orientarme en la dirección correcta me hicieron perder mucho tiempo. Después de muchos meses y de toda clase de reclamaciones de las cuales ya hablé, Lo último que hizo Lulú fue mandar analizar mi PDF por un experto en sistemas de impresión que se limitó a decirme que estaba mal sin explicar que estaba mal ni como solucionarlo y que contratara un servicio de diseño de portadas. Ese es un servicio que no necesito, porque el diseño ya lo tengo hecho con Gimp y lo que faltaba era pasarlo a un PDF aceptable por el sistema de impresión de Lulú. El Wizard de Lulú daba por buenos PDFs que luego fallaban en el sistema de impresión ocasionando retrasos y gastos. Para Lulú no ayudar a sus usuarios no parece un drama. De momento tiene un crecimiento en usuarios enorme. Son usuarios que en su mayoría hacen autoconsumo de unos pocos ejemplares de sus obras, y cuantas más pruebas de impresión tengan que hacer, mejor para Lulú.

No ha sido nada fácil dar con una solución, y esta no es trivial. Ni siquiera puedo explicar totalmente porqué la solución encontrada funciona. Hacer pruebas de impresión no sale gratis y pese a todo por fin mi libro ha llegado con la portada correcta. Lo acabo de conseguir justo ahora que Lulú sube sus precios en torno a un 40% o incluso a un 60% para algunos casos. Los precios finales de los libros resultan ahora muy superiores al precio de mercado.

La solución que yo he implementado puede ser válida no solo para el sistema de autoedición de Lulú, sino también para otros sistemas de autoedición o de impresión bajo demanda.

Lo que comentamos en el capítulo anterior del mismo título solo servía para los que tuvieran Adbobe Photoshop, y que no necesitan nada de lo que trato en este artículo, pero se da la circunstancia de que es un programa nada barato. El único programa que ha recibido las bendiciones de Lulú para generar portadas de una sola pieza es Adobe Photoshop. El resto son sugerencias en clave de … busque usted por su cuenta que Internet es muy grande y seguro que hay algo. Las recomendaciones de la FAQ de Lulú son muy poco útiles en este caso para los que usamos software libre.

Recomendación enérgica de usar Adobe Acrobat para convertir a PDF

La alternativa es usar Gimp que es igual de bueno y es gratuito. Todo se reduce a diseñar la portada con Gimp y luego pasarlas a PDF con la pequeña utilidad que he desarrollado. Las letras de la portada también las puedes colocar en la imagen usando Gimp. Solo debes asegurarte de usar una resolución alta. Lo ideal sería 1837×2775 pixels para portada y contraportada de 6″x9″. Tal como ya se explicó en el artículo anterior. No hay problema en usar resoluciones superiores. Nosotros en este artículo usaremos un programa que adaptará los tamaños de las imágenes de forma automática.

La cuestión es que se necesita generar un PDF, pero no vale cualquier PDF. La ayuda de Lulú es perfectamente inútil, ni siquiera los técnicos han podido ofrecerme una solución concreta y genérica como la que yo ofrezco ahora.

Se han limitado a repetir lo que viene en las FAQs. Pero tener el suficiente control sobre los PDFs que generan una gran variedad de programas para que generen algo que sea aceptado por Lulú y, no es fácil de conseguir. La mayoría de esos programas ofrecen documentos PDFs perfectamente válidos para visualizarlos o imprimirlos en casa, pero inútiles para el sistema de impresión.

No voy a volver a referirme a toda la interminable historia de tira y afloja con estos temas entre Lulú y yo. Mucha gente cree que solo basta con pasar a PDF y no es cierto.He probado un montón de ellos.

No sé si interesa lo que viene a continuación. Se trata de explicar como di con la solución, pero creo que después de haberme mostrado tan crítico con Lulú era necesario explicar las dificultades que hacen que la gente no haya sido capaz de resolver este problema. A mí me ha costado mucho, pero si solo le interesa la solución final puede saltarse toda esta parte e ir directamente al final donde presento la receta en forma de programa en lenguaje Python.

Cómo di con la solución:

No me ha dado la gana de gastarme un pastón en comprar Adobe Photoshop para la tontería de obtener un PDF. Gimp es tan bueno como Photoshop para el diseño y el retoque fotográfico. Tampoco me ha dado la gana de contratar un servicio de pago ni recurrir una y otra vez a los mismos amigos para que pasen mis imágenes a PDF con su Adobe Photoshop. Empecé diseñando una portada de dos piezas con el wizard de Lulú. Hay que subir una portada y una contraportada, y no te deja subir el lomo. (Si permitiera subir el lomo no estaríamos hablando de esto, ya estaría todo).

Lulú coloca un lomo permitiendo escribir algo en él. Los resultados han sido decepcionantes, pero una vez tienes esa portada puedes descargarte el PDF generado por Lulú para la portada de tu libro y ese PDF generado por Lulú me dio varias pistas. Puedes pasar ese PDF a JPG mediante convert de ImageMagick. (disponible gratuitamente para windows y para Linux).  Es un programa muy potente que se usa en forma de comandos. El manual lo tenéis aquí.

http://www.imagemagick.org/script/convert.php

Vamos a aplicar convert de dos formas sobre ese fichero:

convert 4572061_cover.pdf 4572061_cover.jpg

convert -density 300 4572061_cover.pdf 4572061_cover_2.jpg

En el primer caso no hemos especificado nada a convert y ha usado por defecto la densidad de 72 dpi.

(dots Per Inch) Puntos por pulgada.

En el segundo caso le decimos a convert que use 300 dpi.

Puedes usar otro programa de software libre la Linux llamado «pdfedit» para abrir el fichero PDF generado por Lulú.

pdfedit 4572061_cover.pdf

Verás que no es una sola imagen.  Es un PDF con las imágenes de contraportada, lomo y portada, y algunos elementos más,  para letreros logos, etc. El caso es que pdfedit puede hacer muy pocas cosas, pero te permite descargar las imágenes de contraportada, lomo y portada. Lo malo es que las genera en un formato en el cual se ha perdido información de la imagen. Yo las baje en BMP, aunque da igual el formato, se trataba de verificar el tamaño de la imagen con el programa identify de ImageMagik.

Usando identify  de ImageMagick vemos lo siguiente:

4572061_cover.jpg JPEG 979×666 979×666+0+0 DirectClass 8-bit 77.7559kb
4572061_cover_2.jpg JPEG 4080×2775 4080×2775+0+0 DirectClass 8-bit 598.443kb 0.930u 0:02
4572061_cover.pdf[1] PDF 979×666 979×666+0+0 DirectClass 16-bit 1.86549mb
lomo.bmp[2] BMP 100×666 100×666+0+0 DirectClass 8-bit 195.17kb
portada.bmp[3] BMP 441×646 441×646+0+0 DirectClass 8-bit 835.311kb

Vemos que solo la imagen guardada con la opción de densidad 300 dpi ha conservado toda la información. Los demás ficheros BMP y JPG son de pequeño tamaño y si los visualizamos aplicando un zoom sobre algún pequeño detalle veremos la enorme diferencia que supone trabajar a 72 dpi o a 300 dpi.

Yo hasta hace poco visualizaba los PDF con ayuda de XPDF y cuando miraba un PPDF generado mediante convert no notaba nada raro. Eso es porque XPDF optimiza la representación del PDF en pantalla. Empecé a darme cuenta de que algo no estaba bien cuando empecé a usar «KGhostView». Este otro visor te muestra como queda la imagen en la página del documento. Cosa esencial. Ahora puedo decirlo, pero no era algo evidente.

El paquete ImageMagick trae varios programas. Uno de ellos es el programa convert del que ya hemos hablado, y otro es el programa identify del que hablaremos ahora.

Mirando el PDF generado por Lulú  4572061_cover.pdf que tiene varios elementos, me dí cuenta que el tamaño de la página del documento coincidía con el tamaño de la imagen. Intenté forzar eso probando varias cosas con OpenOffice, y con pdfedit sin éxito. Yo conservo una portada de pieza única que me hizo un amigo con su Adobe Photoshop. Cuando a ese PDF lo escaneé con el programa identify y la opción -verbose  me decía que tenía  72 dpi, y me daba un número de píxels que no corresponden con el contenido del PDF.

Lo mismo puede apreciarse si miramos con el mismo programa identify y la opción -verbose el PDF entregado por Lulú.

identify -verbose 4572061_cover.pdf

Image: 4572061_cover.pdf
Format: PDF (Portable Document Format)
Class: DirectClass
Geometry: 979×666+0+0
Type: TrueColor
Endianess: Undefined
Colorspace: RGB
Depth: 8-bit
Channel depth:
Red: 8-bit
Green: 8-bit
Blue: 8-bit
Channel statistics:
Red:
Min: 0 (0)
Max: 255 (1)
Mean: 229.039 (0.898194)
Standard deviation: 39.529 (0.155016)
Green:
Min: 0 (0)
Max: 255 (1)
Mean: 195.795 (0.767823)
Standard deviation: 43.556 (0.170808)
Blue:
Min: 0 (0)
Max: 255 (1)
Mean: 125.17 (0.490862)
Standard deviation: 75.6182 (0.296542)
Rendering intent: Undefined
Resolution: 72×72
Units: Undefined
Filesize: 1.86549mb
Interlace: None
Background color: white
Border color: rgb(223,223,223)
Matte color: grey74
Transparent color: black
Page geometry: 979×666+0+0
Dispose: Undefined
Iterations: 0
Compression: Undefined
Orientation: Undefined
Pdf:HiResBoundingBox: 979.14×666+0+0
Pdf:Version: PDF-1.5
Signature: 21fece2ed231494aca018ce1a18898502124d3aff60328f393022f7535e3fd19
Tainted: False
Version: ImageMagick 6.3.7 02/19/08 Q16 http://www.imagemagick.org

Esta es la información que ese comando entrega, y llama la atención:  Resolution: 72×72, y  Geometry: 979×666+0+0

El manual del programa «convert».  incluye una curiosa advertencia que podría tener relación con esto.

Note that Photoshop stores and obtains image resolution from a proprietary embedded profile. If this profile is not stripped from the image, then Photoshop will continue to treat the image using its former resolution, ignoring the image resolution specified in the standard file header.

En otras palabras. Es un formato propietario y aunque en la cabecera figure una determinada densidad (dpi), Adobe puede determinar la verdadera resolución de la imagen ignorando la densidad y la resolución especificada en cabecera.

Recordemos que ahora tenemos un fichero JPG de 4572061_cover_2.jpg de  4080×2775. Obtenido usando ‘-density 300’. Curiosamente esta son las dimensiones que salen si se aplican los cálculos para las dimensiones que vimos en la primera parte de este artículo, que se basó en la premisa de que el número de pixels dividido por 300 nos daría la dimensión en pulgadas. Las dimensiones de la cubierta ya las deducimos en pulgadas y pasar a píxels era simplemente multiplicar por 300, pero en el caso del fichero PDF en lugar de 4080×2775 píxels identify nos dice algo muy raro. Nos dice que el PDF tiene 979×666 pixels. Algo no va bien, pero me dí cuenta que 2775/666 =4.16666… Parecía el resultado exacto de una divisíón, lo cual es una suerte porque los píxels no pueden venir con decimales y no tendría porque dar exacto.  Resulta que 4.16666… es el resultado de dividir 300/72. ¡Eureka!

Aplicando este factor 4.1666… a las dimensiones de contraportada lomo y portada nos salen los valores en píxels reales que ya establecimos anteriormente pasando la dimensión en pulgada a pixels.

Portada y contraportada 441×646 en realidad corresponden a 1837×2775 píxels. Lomo 100×666 corresponde a 417×2775 píxels.

Resumiendo lo que podría ser una primera receta sería:

1) Obtenga una imagen para la portada y otra para la contraportada con el tamaño correcto que en

nuestro caso será 1837×2775.

2) Obtenga una imagen para el lomo con el tamaño correcto que en nuestro caso será 417×2775

3) Abra en Gimp una imagen con el tamaño global que en nuestro caso será de 4080×2775

metemos contraportada, lomo y portada mediante copiar y pegar, y salvamos.

El mismo resultado debería obtenerse combinando las imágenes con el programa convert que ya hemos dicho lo hace casi todo.

En este caso vamos a usar convert para añadir imágenes de izquierda a derecha, una al lado de la otra.

convert +append contraportada.jpg lomo.jpg portada.jpg portada_una_sola_pieza.jpg

En este último caso puede que los tamaños de las imágenes introduzcan errores de redondeo ya que cada una de ellas puede haber sido dimensionada con el valor por exceso tal y como recomendamos en su momento. En ese caso podemos encajar el tamaño final al tamaño deseado forzando la resolución deseada (no olvide usar ! en el comando que sigue).

convert -geometry 4080×2775! portada_una_sola_pieza.jpg portada_final.jpg

4) Una vez que tenemos nuestra imagen final jpg con el tamaño correcto la pasamos a PDF de la siguiente forma.

convert tiene posibilidades y opciones para casi cualquier cosa que se pueda uno ocurrir y resulta que también tiene una opción -page para especificar el tamaño de la página del documento PDF.  Así pues el comando mágico que hace lo que queremos sería.

convert -page 979×666 -geometry 4080×2775! -density 72×72 portada_final.jpg portada_final.pdf

Habrá notado que hemos usado -density 72×72 que es un valor irreal, pero lo cierto es que esto funciona así, y de cualquier otra manera no funciona, no pregunte porqué. Recuerde que el tamaño de la página es 979=(4080/4.1666) por 666=(2775/4.1666).

Esto es resultado de una dura lucha contra los estándares propietarios de Adobe y con la incomprensión y la prepotencia de Lulú.

El día que Lulú permita subir la imagen del lomo, tiren esta receta a la basura y usen el Wizard de Lulú. ¡Gracias Lulú por tu forma de tratar a tus usuarios!

Esta receta me ha funcionado y abre una posibilidad no solo para los que quieran publicar en Lulú usando sus propias portadas de una sola pieza creadas por ellos mismos y usando solo software libre, sino para los que deseen hacerlo en otros sistemas de autopublicación o de impresión bajo demanda. (Recordemos que el texto del libro no es problema porque OpenOffice importa a PDF el texto).

Ignoro si existe otro procedimiento mejor, pero queda claro que mientras Lulú no facilite las cosas, poco más podemos hacer los usuarios que jugar a las adivinanzas y a perder muchas horas de trabajo en tonterías como esta. Todo esto ha sido puesto a prueba y he recibido el resultado correcto de la prueba de impresión correspondiente.

Lo triste es que a Lulú no solo le importa muy poco los problemas de los usuarios de software libre sino que con la nueva política de precios Lulú parece apostar por el negocio de los usuarios que son meros autoconsumidores y no les importa que el precio del libro no sea competitivo. Para estos usuarios el libro es un capricho y pueden pagar un poco más. Lulú se dedica ahora a sacar el máximo de tajada a cada usuario y quizás por eso los wizards llevan tiempo sin incorporar mejoras importantes y muy necesarias. Tener que hacer varios pedidos a modo de pruebas de impresión se puede entender en un negocio que empieza, pero no es el caso. Las cifras del crecimiento de Lulú en número de usuarios son abrumadoras. Lulú se está equivocando tratando así a sus usuarios. Hoy tiene usuarios de sobra pero mañana aparecerá un competidor y seguramente lamentará las cosas que está haciendo ahora. Esta solución que yo he aportado es solo un parche y  Lulú podía hacer mucho más de lo que ha hecho.

Finalmente, la receta en forma de programa:

Una vez explicadas mis venturas y desventuras para llegar hasta aquí, seguramente lo que la gente quiere es algo fácil de usar, así que he automatizado todo el proceso en un solo script en lenguaje Python.  Se ofrece con código fuente. Supongo que para Windows necesitará alguna pequeña modificación, pero ImageMagick está disponible para Windows y para Linux, y Python también. Ambos son gratuitos.

El programa que acabo de realizar lo he llamado ‘3img1portada.py’, y lo ofrezco como programa de libre uso y distribución bajo licencia GPL, y está diseñado para funcionar en el S.O. Linux requiere tener instalado el intérprete de lenguaje Python y el paquete ImageMagick. Para usarlo en Windows habría que adaptarlo. Para ello recomiendo echar un vistazo a «Como usar Python en Windows.»

http://www.python.org/doc/2.6/using/windows.html

 

Licencia del programa:

Eres libre de usar el programa y distribuirlo incluso haciendo uso comercial del mismo si fuera el caso. Podrás adaptar a tu conveniencia el programa, si sabes un poco de programación, respetando la licencia GPL (Licencia Pública General de GNU)  http://www.gnu.org/copyleft/gpl.html que afectará igualmente a las modificaciones que tú hagas.

Uso del programa:

Es muy simple de usar. Imaginemos que tenemos tres imágenes contraportada.jpg, lomo.jpg y portada.jpg para un libro de 6″9″ de 550 páginas. En ese caso situaremos el programa y las imágenes en un directorio y teclearemos el comando siguiente:

3img1portada.py contraportada.jpg lomo.jpg portada.jpg 550

¡Ya está todo hecho! El programa hará todas las adaptaciones necesarias de esas imágenes, y generará una nueva combinándolas en una sola. El resultado será un único PDF con una única imagen que lo contiene todo. Compruebe el PDF generado. Si las imágenes de partida tenían baja calidad (alta compresión) o baja resolución. La calidad final no puede ser buena. Trabaje siempre con imágenes poco comprimidas y resolución muy alta, para asegurar un buen resultado. Recuerde que el sistema de impresión eliminará parte de la imagen cercana al borde al cortar el libro. Deje los bordes despejados. Compruebe que incluso las letras más pequeñas resultan perfectamente legibles usando un visor PDF con zoom.

Puede descargar el programa incluido en un paquete que contiene algunas utilidades  más el lenguaje Python:

utilidades_py.arj (DOWNLOAD 5 MBytes)
utilidades_py.tgz (DOWNLOAD 3 MBytes)

No solo ofrezco este programa. Me he peleado mucho con esto y también ofrezco ayuda a todo el que lo necesite generar portadas. Si usáis Windows y necesitáis ayuda adicional, comentarme vuestras necesidades. Os ayudaré en lo que pueda.

Funciona con WordPress & Tema de Anders Norén