Archivo de la categoría: 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

Cómo compaginar un documento en Scribus para imprimir o guardar


FoliosA pesar de ser un excelente maquetador de documentos de más alta altura que MS Publisher, no posee una forma de imprimir las hojas de 4 por hojas, 2 por cada cara de forma que me quede como un libro.

Compaginar significa que coincidan las páginas de forma que lo pueda imprimir en ambas caras y crear un libro.

Más detalles del concepto de cuarto y octavo, cosido de cuadernillos de folios, encuadernado y finalmente te puedes comprar este libro.

No conseguí manera de que el programa lo hiciera. Para ello cree le siguiente script Python:

#!/usr/bin/env python

"""
scribus_imposition.py
A very simple utility that allows you to copy
and paste the correct page sequence for
a simple booklet imposition
2013.03.10 Carlos Celis Flen-Bers
Based in bookletpages.py by 2007.12.22  Gregory Pittman
"""
import scribus

# message is broken up only so it fits on this page
message = 'Haga click en OK y luego Ctrl+C para copiar la secuencia.\nPegue en el cuadro de Imprimir o Guardar PDF'
scribus.messageBox("Instrucciones",message,icon=0,button1=1)

# Calculo
pag = 1
num_pags = scribus.pageCount()
modulo = num_pags % 4
if modulo == 0:
    b = scribus.messageBox('Excelente','El documento tiene paginas multiplos de 4',scribus.ICON_WARNING, scribus.BUTTON_OK)
    if num_pags == 4:
        b = scribus.valueDialog('Secuencia de Paginas','Libro de -'+str(num_pags)+'- Paginas\nCtrl+C para copiar', '4,1,2,3')
    else :
        cadena = ''
        ult = num_pags
        cont = pag + 1
        sig = ult - 1
        while pag <= (sig - 2):
            cadena_tmp = str(ult)+','+str(pag)+','+str(cont)+','+str(sig)
#            b = scribus.valueDialog('Contador','Hasta 4', cadena_tmp)
            ult -= 2
            pag += 2
            cont += 2
            sig -= 2
            if cadena != '': cadena += ','+cadena_tmp
            else : cadena += cadena_tmp
        b = scribus.valueDialog('Secuencia de Paginas','Libro de -'+str(num_pags)+'- Paginas\nCtrl+C para copiar', cadena)
else:
    b = scribus.messageBox('Error','El documento debe tener cantidad de paginas multiplo de 4',scribus.ICON_WARNING, scribus.BUTTON_OK)

Para usarlo primero copiar y guardar en un archivo, yo lo llame ‘scribus_imposition.py’ por el proceso de Imposición.

Este script tiene el inconveniente de que compagina en un cuadernillo infinito.

Estoy haciendo otro que compagine por cuadernillos

Luego abrimos el programa y hacemos clic en Script->Ejecutar Script…

Menú Script

Menú Script

Seleccionar fichero en Linux

Seleccionar fichero en Linux

Luego de darle ok, el script empezará a dar una serie de mensajes… si todo sale bien saldrá una secuencia de números que deberá pegar en la ventana de Archivo->Imprimir donde dice Imprimir el rango

Imprimir páginas

Imprimir páginas

Del monopolio de MS a la dictadura Canaima


Mucho se ha hablado del tema en foros, blogs, etc…. Compañeros que empezaron el movimiento del Software Libre, desde que solo existían menos de 10 distros conocidas por la comunidad y que todo funcionaba bien en “el bazar” que los diferentes “sabores” de Linux ofrecían.

En la defensa del Software Libre

Después del decreto 3390, a muchos se les fué “el pase” al querer (léase obligar) a los demás a usar sólo Linux en algunos casos, y en el otro a que sólo Canaima (o “los indiecitos” como dicen por ahi). El decreto 3390 si bien es la iniciativa del Estado venezolano a mejorar su gestión, no es de obligación a los usuarios finales. De hecho, el día de mañana puede haber una distro venezolana a la cuál la comunidad debe de darle el apoyo suficiente, tanto el los FLISOL’s como en los CNSL’s.

En un principio hubo usuarios que les gustaba Debian, pero otros decidieron irse por otra e hicieron RedHat y así siguieron, y seguirán. Cada quién es libre de pensar y de ofrecer lo que tiene. Por eso, los paquetes son compatibles en muchos casos entre sí.

Hay algo en que si debemos enfocar la atención: que las tecnologías que las empresas del estado (principalmente CANTV) ofrezca PRIORITARIAMENTE equipos de toda índole con soporte a tecnologías libres y a estándares abiertos. Esto si es demasiado importante, y debemos hacer autocrítica en esto como Revolución.

Vamos entonces a encaminarnos a dar apoyo a la base del asunto, que es la promoción de las libertades del software como derechos del usuario final, y no en quién consigue más popularidad. 🙂


Cronograma de la FLISOL Maracaibo para este sábado

Hora Titulo Ponente
8:30am Palabras de Bienvenida
9:00am Empresas que prosperan con productos abiertos Jorge Urdaneta
9:45am El Escritorio Ligero Rafael Cayama
10:30am Modo de producción» del Software Libre Ángel Ramírez
11:15am Wikipedia OffLine Wilfredo Rodríguez
12:00pm Receso
1:00pm Red de Facilitadores Comunitarios Canaima GNU/Linux Luis Martinez (CNTI)
1:45pm XBMC / La revolución del Media Center Raúl Mier
2:30pm Avances de Wine Luis Alvarado
3:15pm FTA (Libre en el Aire) Heri Delgado
4:00pm CIERRE

Charlas Rápidas

Titulo Ponente
Papel de los Grupos Activistas dentro de la Comunidad de Software Libre Stephenson Prieto

Ver la entrada original

ABSOLUTELY NO WARRANTY


“Totalmente sin garantía”, eso dicen las licencias de Software Libre, significa que nadie ha de responder por daños y a eso le temen muchos pero, la licencia de software privativo ¿te provee de una GARANTÍA? Sí?

Ha leido el End User License Agreement (EULA) o CLUF por sus siglas en español de algún software privativo, simplemente porque no lo instala o porque sólo ve el botón de Siguiente hasta el final? Viste que no se hacen responsables por daños o datos…

Entonces, ¿porque pagar por algo que, a la final, te deja colgando igual y que no puedes modificar o corregir?

O siempre te deja el pen drive así:

Y el autorun.inf así:

autorun.inf infectado

autorun.inf infectado por virus RECYCLER

Pero si te gustan las pantallas azules, mira lo que dicen en Minority Report:

Y en la Universidad, el laboratorio de Compu tuvo una “ola azul”:

Por eso, me quedo con Canaima, o por el momento con Ubuntu

Ubuntu: distro linux

GNU/Linux o Windows? He ahí la cuestión

Difusión del Software Libre


Como dice el Comandante: “Escuchando a las bases”, he dejado estas  sugerencias para pensar en mi sección Reflexiones, sobre aspectos que quedaron en el aire en las “reuniones”, por decirlo de alguna manera, para difundir algo tan difuso como la “Filosofía del Software Libre”. Debemos de acabar con el costumbrismo, así sea mostrando las leyes y las licencias originales de los productos propietarios, y mostrarles cuán libres…. son?. Aún en los foros se pueden conseguir cosas, como que “el Software Libre, es el anticristo (anti Bill y Cia tal vez) y que fué hecho por Chávez, por eso no lo aceptaremos….” no sólo de parte del Gobernador y de la alcaldesa actual, sino de personas que dicen ser profesionales.

Sigue>>

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