- Pantalla principal: 22 pulgadas, 1920x1080.
- Pantalla secundaria: 19 pulgadas, 1440x900.
- Físicamente la pantalla secundaria esta 1cm por debajo de la principal.
- La densidad de pixels de ambas pantallas es diferente, por lo que hay que hacer algunos cálculos para que las imágenes encajen.
2. Cálculo del tamaño de las imágenes.
- La pantalla de 22 pulgadas, 1920x1080 tiene un tamaño de 477mm x 269 mm (4 pixels por mm)
- La pantalla de 19 pulgadas, 1440x900 mide 408mm x 255mm (3.5 pixels por mm)
- Para se vea bien la imagen de la pantalla de 19 pulgadas debe medir:
3. Descripción del proceso
- La imagen original es de 16 megapixels (4608x3456)
- Editar la imagen con gimp y recortarla con una proporción fija de 3360x1180. (1920+1440 de ancho y 1080 más 100 pixels de margen).
- Exportarla como TIFF para evitar pérdidas por compresión.
- Editar las variables del script según convenga. El resultado son dos imágenes (1920x1080 y 1440x900) que encajan una con la otra.
Nota: El script no está optimizado para que sea más fácil de entender y modificar.
#!/bin/bash ################################################ ### Variables que siempre hay que modificar ### # RECUERDA: La imagen a recortar es con la proporción 3360:1080 FILENAME="pic04.tiff" #Ajuste de la imagen de la pantalla 1 para que encaje con la #de la pantalla 2. SCR1_OFFSET="60" ### Variables que tal vez haya que modificar ### # El añadido al alto real VIRTUAL_EXPANSION="100" #Tamaño real de las pantallas SCR1_WIDTH="1920" SCR1_HEIGHT="1080" # La pantalla es 1440x900 pero al tener diferente # dpi hago un ajuste en el tamaño de la imagen SCR2_WIDTH="1646" SCR2_HEIGHT="1029" #SCR2_WIDTH="1440" #SCR2_HEIGHT="900" ## A partir de aquí ya no hay que modificar nada ## ################################################### #Tamaño virtual de las pantallas #Asumo que la pantalla 1 siempre es mayor que la 2 let "VIRTUAL_HEIGHT=$SCR1_HEIGHT+$VIRTUAL_EXPANSION" TEMP_FILE1A="/tmp/1920x1080_tmpa.tiff" TEMP_FILE2A="/tmp/1440x900_tmpa.tiff" TEMP_FILE1B="/tmp/1920x1080_tmpb.tiff" TEMP_FILE2B="/tmp/1440x900_tmpb.tiff" #TEMP_FILE1C no es necesario TEMP_FILE2C="/tmp/1440x900_tmpc.tiff" FINAL_FILE1="/tmp/1920x1080.jpg" FINAL_FILE2="/tmp/1440x900.jpg" #Calcular tamaño total del escritori let "VIRTUAL_WIDTH=$SCR1_WIDTH+$SCR2_WIDTH" echo -e "Obteniendo el tamaño de la imagen..." # Averiguar tamaño de la imagen IMG_WIDTH=`identify $FILENAME | cut -d ' ' -f3 | cut -d 'x' -f1` IMG_HEIGHT=`identify $FILENAME | cut -d ' ' -f3 | cut -d 'x' -f2` # Calcular proporcion del escritorio respecto de la imagen # Usando bc para obtener un resultado con decimales PROPORTION=`bc <<< "scale=10; $IMG_WIDTH/$VIRTUAL_WIDTH"` #Calculo del tamaño de los recortes teniendo en cuenta la proporción #El resultado es un entero por la extraña operación añadida W1_WIDTH=`bc <<< "($SCR1_WIDTH*$PROPORTION+0.5)/1"` W2_WIDTH=`bc <<< "($SCR2_WIDTH*$PROPORTION+0.5)/1"` W1_HEIGHT=`bc <<< "($VIRTUAL_HEIGHT*$PROPORTION+0.5)/1"` echo -e "Preparando imágenes..." #cortar imagenes convert ${FILENAME} -crop ${W1_WIDTH}x${W1_HEIGHT}+0+${IMG1_OFFSET} ${TEMP_FILE1A} convert ${FILENAME} -crop ${W2_WIDTH}x${W1_HEIGHT}+${W1_WIDTH}+${IMG2_OFFSET} ${TEMP_FILE2A} echo -e "Redimensionando imágenes..." #redimensionar convert ${TEMP_FILE1A} -resize ${SCR1_WIDTH}x${VIRTUAL_HEIGHT} ${TEMP_FILE1B} convert ${TEMP_FILE2A} -resize ${SCR2_WIDTH}x${VIRTUAL_HEIGHT} ${TEMP_FILE2B} echo -e "Guardando imágenes..." #Recorte final let "SCR1_SOBRANTE=${VIRTUAL_EXPANSION}-${SCR1_OFFSET}" convert ${TEMP_FILE1B} -crop ${SCR1_WIDTH}x${SCR1_HEIGHT}+0+${SCR1_SOBRANTE} $FINAL_FILE1 let "SCR2_SOBRANTE=$VIRTUAL_HEIGHT-$SCR2_HEIGHT" convert ${TEMP_FILE2B} +repage -crop ${SCR2_WIDTH}x${SCR2_HEIGHT}+0+${SCR2_SOBRANTE} ${TEMP_FILE2C} #redimensionado final en la segunda pantalla convert ${TEMP_FILE2C} -resize 1440x900\! ${FINAL_FILE2} echo -e "\nSumario:" echo -e "DATOS DE LA IMAGEN" echo -e "El ancho es $IMG_WIDTH" echo -e "El alto es $IMG_HEIGHT" echo echo -e "DATOS DEL ESCRITORIO" echo -e "Ancho total: $VIRTUAL_WIDTH" echo -e "Proporción entre la imagen y el escritorio: $PROPORTION" echo echo -e "Terminado."
No hay comentarios:
Publicar un comentario