Archivo de la categoría: Consola Linux

Cómo crear paquetes de pegatinas personalizadas (joder el español, en inglés Custom Sticker Set) para Telegram


Bueno como dice el título voy a enseñar como crear paquetes (sets) de stickers para Telegram

Telegram Messenger

Telegram Messenger

Para ello empecemos explicando lo que es un sticker

¿Que és un sticker?

Un sticker según la página oficial es una imagen de 512×512 pixeles, con fondo transparente y en formato Webp desarrollado por Google con una mayor compresión que el JPEG. Un formato que dará mucho de que hablar en los próximos años, cuando las cámaras no hagan conversión de Raw a JPEG sino a Webp. Bueno les dejo la galería, que por los momentos se muestran con pocos navegadores, excepto el de la casa, Google Chrome cesar_yes Sigue leyendo

Anuncios

Convertir una imagen Carátula DVD en una proyección


Como convertir una carátula de DVD (o cualquier tipo) en una representación de la caja

Usando la imagen
http://img513.imageshack.us/img513/3228/imgrf9.jpg

Usaremos el siguiente script:

#!/bin/bash

wget http://img513.imageshack.us/img513/3228/imgrf9.jpg; img=”imgrf9.jpg”
#img=$1;

identify -format “%w\x%h” $img
# dimensiones de imagen imgrf9.jpg = 3213 px x 2125 px
# ancho de spine = 213
# ancho de caratulas 3213 – 213 = 3000; 3000 / 2 = 1500 px

# Back 1500 + Spine 213 + Front 1500 = 3213 px

# Cortamos front + spine = 1500 + 213 = 1713
convert “$img” -gravity East -chop 1713x back.jpg
echo “Creado back.jpg”

# Cortamos front y back = 1500 y 1500 por ambos lados
convert “$img” -gravity East -chop 1500x -gravity West -chop 1500×0 spine.jpg
echo “Creado spine.jpg”

# Cortamos back + spine = 1500 + 213 = 1713
convert “$img” -gravity West -chop 1713×0 front.jpg
echo “Creado front.jpg”

# Transformar
# Puntos de perspectiva
# 1——2
# 3——4
# back 1500×2125
convert back.jpg -matte -virtual-pixel transparent \
-distort Perspective ‘0,0 173,76 1500,0 1500,62 0,2125 173,1971 1500,2125 1500,1957’ back_cover.png
echo “Creado back_cover.jpg”

# spine 213×2125
convert spine.jpg -matte -virtual-pixel transparent \
-distort Perspective ‘0,0 0,62 213,0 143,76 0,2125 0,1957 213,2125 143,2013’ spine_cover.png
echo “Creado spine_cover.jpg”

# front 1500×2125
convert front.jpg -matte -virtual-pixel transparent \
-distort Perspective ‘0,0 0,76 1500,0 1200,47 0,2125 0,2013 1500,2125 1200,1910’ front_cover.png
echo “Creado front_cover.jpg”

montage -geometry +0+0 back_cover.png \
\( spine_cover.png -crop 0x0-70+0 \) \
front_cover.png -background none caratula.png
# caratula.png 3143×2125

convert -size 16×16 -font CourierNew -pointsize 18 xc:none -annotate +3+12 ‘©’ -flop cl.png

convert -size 150×16 -font CourierNew -pointsize 18 xc:none -annotate +3+12 ‘Carlos Celis’ cc.png

montage -geometry +0+0 -background none cl.png cc.png carloscelis.png

ancho=`identify -format “%w” caratula.png`
anchowm=`expr $ancho / 3`; #echo $anchowm

composite \( carloscelis.png -geometry $anchowm -gravity southeast -dissolve 40% \) caratula.png caratula-cpleft.png

#convert -trim img.png caratula.png
echo “Montaje hecho”

También he creado este:

#!/bin/bash

# Use $0 imagen anchospine

img=$1;
wspine=$2;

echo -n 'Imagen: '$img' dimensiones: '; identify -format "%w\x%h" $img
echo 'Ancho de la Espina: '$wspine

anchoimg=`identify -format "%w" $img`
altoimg=`identify -format "%h" $img`
backfront=`expr \( $anchoimg - $wspine \) / 2`

# Cortamos front + spine
corte=`expr $backfront + $wspine`
convert "$img" -gravity East -chop $corte\x back.jpg
echo "Creado back.jpg"

# Cortamos front y back por ambos lados
convert "$img" -gravity East -chop $backfront\x -gravity West -chop $backfront\x spine.jpg
echo "Creado spine.jpg"

# Cortamos back + spine
convert "$img" -gravity West -chop $corte\x0 front.jpg
echo "Creado front.jpg"

# Transformar
# Puntos de perspectiva
# 1------2
# 3------4

# back
margensup=100;
margenizq=100;
perspectivaback=100;
factor=`expr $altoimg / $perspectivaback`;
perspY=30;
margeninf=100;

p1b='0,0';
p1bt=$margenizq','`expr $margensup + $factor + $perspY`
p2b=$backfront',0'
p2bt=$backfront','`expr $margensup + $factor`
p3b='0,'$altoimg
p3bt=$margenizq','`expr $altoimg - $factor - $margeninf - $perspY`
p4b=$backfront','$altoimg
p4bt=$backfront','`expr $altoimg - $factor - $margeninf`

#echo \'$p1b $p1bt $p2b $p2bt $p3b $p3bt $p4b $p4bt\'
eval convert back.jpg -matte -virtual-pixel transparent \
-distort Perspective \'$p1b $p1bt $p2b $p2bt $p3b $p3bt $p4b $p4bt\' back_cover.png
echo "Creado back_cover.jpg"

# spine 213x2125
pandeospine=35;
p1s='0,0';
p1st='0,'`expr $margensup + $factor`
p2s=$wspine',0'
p2st=`expr $wspine - $pandeospine`','`expr $margensup + $pandeospine`
p3s='0,'$altoimg
p3st='0,'`expr $altoimg - $factor - $margeninf`
p4s=$wspine','$altoimg
p4st=`expr $wspine - $pandeospine`','`expr $altoimg - $factor - $margeninf + $pandeospine`

#echo \'$p1s $p1st $p2s $p2st $p3s $p3st $p4s $p4st\'
eval convert spine.jpg -matte -virtual-pixel transparent \
-distort Perspective \'$p1s $p1st $p2s $p2st $p3s $p3st $p4s $p4st\' spine_cover.png
echo "Creado spine_cover.jpg"

# front 1500x2125
margenderecho=120;
perspY=30;
p1f='0,0';
p1ft='0,'`expr $margensup + $pandeospine`
p2f=$backfront',0'
p2ft=`expr $backfront - $margenderecho`','`expr $margensup + $pandeospine - $perspY`
p3f='0,'$altoimg
p3ft='0,'`expr $altoimg - $factor - $margeninf + $pandeospine`
p4f=$backfront','$altoimg
p4ft=`expr $backfront - $margenderecho`','`expr $altoimg - $factor - $margeninf - $perspY`

#echo \'$p1f $p1ft $p2f $p2ft $p3f $p3ft $p4f $p4ft\'
eval convert front.jpg -matte -virtual-pixel transparent \
-distort Perspective \'$p1f $p1ft $p2f $p2ft $p3f $p3ft $p4f $p4ft\' front_cover.png
echo "Creado front_cover.jpg"

# caratula.png
montage -geometry +0+0 back_cover.png \
\( spine_cover.png -crop 0x0-$pandeospine+0 \) \
front_cover.png -background none caratula.png

convert -size 16x16 -font CourierNew -pointsize 18 xc:none -annotate +3+12 '©' -flop cl.png

convert -size 150x16 -font CourierNew -pointsize 18 xc:none -annotate +3+12 'Carlos Celis' cc.png

montage -geometry +0+0 -background none cl.png cc.png carloscelis.png

ancho=`identify -format "%w" caratula.png`
anchowm=`expr $ancho / 3`; #echo $anchowm

composite \( carloscelis.png -geometry $anchowm -gravity southeast -dissolve 40% \) caratula.png caratula-cpleft.png

#convert -trim img.png caratula.png
echo "Montaje hecho"
display -resize 800 caratula.png
display -resize 800 caratula-cpleft.png

Si se guarda como “caratula.sh”, la llamada sería:
> bash caratula.sh imgrf9.jpg 213

O, si usas la imagen http://images2.coveralia.com/dvd/r/Ratatouille-Caratula.jpg

Derechos de Disney


> bash caratula.sh Ratatouille-Caratula.jpg 113

Convertir una imagen o conjunto de estas en un PDF en Linux con Imagemagick


Imagen a PDF

Para convertir con IM, vamos a utilizar en comando convert, para ello escribimos en la consola:
convert nuestraimagen nuestropdf.pdf

Y Así se hace un pdf con una imagen, pero que pasa si tenemos varias imágenes, bueno escribimos
convert *.jpg nuestropdf.pdf
Y así convertiriamos todas las jpg que existen en una carpeta en pdf

Pero que pasa si las imágenes están en secuencia y queremos guardarlas como tal
convert sufijoimagenes*.jpg.pdf nuestropdf.pdf

Este código puede dar problemas si las imágenes tienen o no ceros delante, es decir, si las imágenes siguen una secuencia 1,2,3,…10,11,12 empezará por la 1, luego 10,11,12,… luego 2,20,21,22 y así no queremos que pase. podemos agregar un 0 delante ‘a cada imagen’ para que tenga la misma cantidad de cifras (01,02,…10,11 o 001,002,003…999) o crearlas por partes y unir los dos pdf
convert sufijoimgs?.jpg 1.pdf

convert sufijoimgs??.jpg 2.pdf
Y con la ayuda de pdfjoin
pdfjoin 1.pdf 2.pdf

ImageMagick, que NO se puede hacer con las imágenes


Logo IM

ImageMagick

ImageMagick no es un programa visual, es un suite (conjunto de programas) para crear, editar y montar imágenes de mapa de bits (Gráfico Rasterizado) que se ejecuta por línea de comandos y el cuál podemos enlazar con nuestro lenguaje favorito.

Tiene varias interfaces para cada uno: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), NMagick (Neko/haXe), MagickNet (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), o TclMagick (Tcl/TK). También se puede usar en Windows

IM Ejemplos
Para empezar, puedes bajarte esto

  1. Imágenes
  2. Fotos

Abre una consola bash, dirigite a una carpeta con imágenes e introduce esto:
convert *.jpg mis\ imagenes.pdf
Con eso conseguiras un PDF con todas las imágenes JPG de esa carpeta

Un ejemplo avanzado de este programa, puedes verlo aquí

Para más info:  Mire todos los usos que tiene

Fotocomposición
Animación
Animación2
Esferificar
Y muchos más….
Y ahora un chiste:

Pasatiempos.... con ImageMagick
Si no lo entendiste o eres mujer (jeje), lee esto