I printed out Mogrify, my zombie apocalypse novel. It’s not done. Not even close but this might make editing easier. Look at this! She’s thick

seen from Netherlands

seen from United States
seen from T1
seen from China
seen from Japan

seen from Netherlands
seen from Malaysia

seen from Singapore
seen from Germany

seen from Germany
seen from Ethiopia
seen from Brazil
seen from Malaysia

seen from Australia

seen from Russia
seen from Brazil
seen from United States
seen from Türkiye
seen from United States
seen from United States
I printed out Mogrify, my zombie apocalypse novel. It’s not done. Not even close but this might make editing easier. Look at this! She’s thick
Novel is at 25K eeeheeheehee
I need to stop being so goal oriented with words and focus more on the bigger picture!!!! GRRRrrrr
Anyway I'm editing chapter 2 of my book and it's going to be really really good but wow i left more mess in this chapter to clean up
We hit 20K on the zombie novel
the zombie apocalypse novel is 9K for everyone keeping track at home
original works are so much harder for me to write UGHHHHH
Okay, basic plan in place for editing. Sharing here for transparency and also accountability - I'm spending this week (June 2 - June 8) filling in the gaps of the novel. There are more than I realized. I'm also doubling up and as I fill in the gaps, I'm making a timeline of events and a basic summary of what happens in each chapter/major players/major events/anything relevant so that future editing will be easier (like chasing one character to fix their characterization or motivation). By the end of next weekend, I'll have 1) a timeline 2) a chapter breakdown 3) an entirely filled in novel (currently 74K but after all this might be at 90K, we'll see) 4) a plan for future edits
There's definitely work to do on my protagonist - he needs to feel more like an alt-right man at the beginning, BUT we still have to like him and want him to succeed, so that's a balancing act. But that'll be next week's problem. I need to only bite off one thing at a time and chew it all the way through before I swallow it. Weird metaphor, but hopefully you get it.
I'll be using half my morning time to get some words in on my hockey novel (to appeal to the side of me that feels like adding words is more productive than anything else -- and also because i'm obsessed with this pairing and their story) and the other half of my morning reviewing what section of Mogrify I'll be adding/filling in gaps over lunch break/evening time. If I can get some words in then, great, but I'm not counting on it. This will allow me to meditate on what I'll be writing on my drive into work and over some of work.
Okay, good plan, team!!
the novel has his 40K words - I want to be at 55K by next Monday!
Guia básica para edición de imagenes simple con GNU/Linux
A menudo es necesario hacer una manipulación básica de imágenes y da mucha pereza ejecutar GIMP u otro editor de imágenes para una tontería; e incluso a veces necesitamos modificar gran cantidad de imágenes y necesitamos automatizar el proceso:
Ejecución Aunque ImageMagick, que seguro que lo encontráis en los repositorios de vuestra distribución favorita, da mucho más de sí, aquí veremos ejemplos con convert, import y mogrify
Por precaución, copiar las imágenes que queráis redimensionar a un directorio alternativo.
Redimensionado de imágenes hamburgueson_2$ convert -resize [dimensión/porcentaje] origen destino Por ejemplo para redimensionar con un ancho de 320 pixels:
$ convert -resize 320 hamburgueson.jpg hamburgueson_mini.jpg De esta forma, si especificamos la altura, se ignorará, ya que convert intentará mantener el aspecto de la imagen.
También podemos imponer la altura y que se calcule automáticamente el ancho:
$ convert -resize x500 hamburgueson.jpg hamburgueson_mini.jpg O si queremos, podemos también redimensionar con un porcentaje del tamaño original:
$ convert -resize 40% hamburgueson.jpg hamburgueson_mini.jpg hamburgueson_21También es posible la redimensión sin mantener el aspecto (relación ancho/alto) de la siguiente forma:
$ convert -resize \!600×300 hamburgueson.jpg hamburgueson_deforme.jpg Y esto mismo, también por porcentaje:
cd /home/user/images
mkdir resized_images
cp /home/user/images/* /home/user/images/resized_images Una vez hecho esto ya podréis aplicar el comando:
mogrify -resize 800 *.jpg Con esto redimensionáis todas las imágenes del directorio en el que os encontréis a una anchura de 800 píxeles manteniendo la relación de aspecto. Si queréis tener una imagen fija de las imágenes podéis especificarla de esta forma:
mogrify -resize 800×600! *.jpg
$ convert -resize \!100×30% hamburgueson.jpg hamburgueson_deforme.jpg Capturando el escritorio Puede que nuestro entorno preferido de escritorio no venga con esta funcionalidad, o incluso que estemos desde una máquina remota y queramos ver lo que pasa en el escritorio, una captura de pantalla no viene mal. Para ello podemos hacer lo siguiente:
screenshot-26-08-2010-100842
$ import -window root captura.jpg O si queremos capturar una ventana en especial:
$ import ventana.jpg Nos aparecerá un puntero especial que nos permitirá seleccionar la ventana a capturar.
O si queremos capturar una ventana en especial sin necesidad de hacer click (muy útil si estamos en un equipo remoto):
$ import -window “Titulo de la ventana” ventana.jpg También podemos sacar el ID de la ventana con:
$ wmctrl -l Y poner en lugar del título, el ID. Es necesario que nos encontremos en el mismo escritorio de la ventana para hacer la captura. Cómo podemos hacer eso remotamente ?
$ wmctrl -l # Nos dirá en la segunda columna el escritorio donde está la ventana
$ wmctrl -s [numero] # Saltaremos al escritorio [numero], el primero es el cero. Espacios de color Podemos cambiar el formato del color de forma rápida usando colorspaces, dependiendo del formato de salida y la forma en la que la imagen será utilizada, para vídeo, por ejemplo. Aunque también tenemos algunos espacios interesantes como:hamburgueson_3
$ convert -colorspace gray hamburgueson.jpg hamburgueson_gris.jpg El tono de gris estará calculado para adecuarse al ojo humano: Gris = 0.299*Rojo+0.587*Verde+0.114*Azul
Aunque también podremos transformar a YUV, XYZ, LAB, HSL, etc; también necesitamos que el formato de salida sea compatible con esos espacios de color. Para ver una lista de todos los colorspaces disponibles:
$ covert -list colorspace
hamburgueson_31También podemos ecualizar la imagen con respecto a los diferentes espacios de color de la siguiente forma:
$ convert -colorspace [espacio] -equalize origen destino En el ejemplo:
$ convert -colorspace hsl -equalice hamburgueson.jpg hamburgueson_hsl.jpg Y si no queremos decir el colorspace, usaremos el actual de la imagen:
$ convert -equalize hamburgueson.jpg hamburgueson_e.jpg Recortar imágenes Es más cómodo hacerlo con el ratón, pero en ocasiones querremos hamburgueson_4automatizar el proceso, y podemos hacerlo de la siguiente forma:
$ convert -crop [ancho]x[alto]+[x]+[y] Por ejemplo lo siguiente:
$ convert -crop 300×300+100+100 Creará una imagen de 300×300 y empezará a partir del punto 100×100 (desde la izquierda/arriba).
Bordes hamburgueson_41Para añadir un borde podemos hacer lo siguiente:
$ convert -bordercolor [color] -border [ancho]x[alto] origen destino En el ejemplo tenemos:
$ convert -bordercolor black -border 10×10 hamburgueson.jpg hamburgueson_borde.jpg Para especificar el color podemos hacerlo de varias formas:
$ convert -bordercolor black/red/green/blue… # Por su nombre. Si queremos saber los nombres de color disponibles:
$ convert -list color
$ convert -bordercolor “#aacc11″ # Por su equivalente hexadecimal
$ convert -bordercolor “rgb(100,150,200)” # En función de sus valores RGB
$ convert -bordercolor “hsl(100,150,200)” # En función de sus valores HSL
$convert -bordercolor “cmyk(100,200,150,230)” # En función de sus valores CMYK
… etcétera… tantos formatos como espacios de color. Ahora bien, queremos quitar el reborde añadido:
$ convert -trim hamburgueson_borde.jpg hamburgueson_nuevo.jpg Pero es posible que por la compresión jpeg no se detecte bien el borde (es una compresión con pérdida de calidad, y se modifica la imagen; para nosotros el borde es negro, pero para el ordenador hay muchos tonos de negro), entonces podemos hacer lo siguiente:
$ convert -fuzz 10% -trim hamburgueson_borde.jpg hamburgueson_nuevo.jpg Con esto damos una tolerancia de un 10% al color, es decir, si se parecen los tonos de negro en menos de un 10% serán considerados iguales.
hamburgueson_42También podemos añadir un biselado como el del ejemplo de la siguiente manera:
$ convert -mattecolor red -frame 20×20+10+10 hamburgueson.jpg hamburgueson_rojo.jpg Filtros y efectos hamburgueson_32Por si fuera poco, podemos aplicar los filtros típicos a las imágenes como blur, motion-blur, blur gaussiano (gaussian-blur), ruido (noise), carboncillo (charcoal).
En el ejemplo, se ha añadido motion-blur de la siguiente forma:
$ convert -motion-blur 10×40+10+0 hamburgueson.jpg hamburgueson_movido.jpg
__________________________________________________________________________________________________
Sigo con la serie de posts sobre ImageMagick, anteriormente estuvimos viendo cómo podemos redimensionar, añadir y quitar bordes a la imagen, cambiar y ecualizar el espacio de color, añadir efectos y capturar de la pantalla. Ahora veremos más cosas relacionadas con el color:
Tocando los canales de color hamburgueson_33Imagina que queremos aplicar un efecto sólo en un canal, por ejemplo, un efecto radial-blur sólo en el canal rojo:
$ convert -channel red -radial-blur 30 hamburgueson.jpg hamburgueson_rojo.jpg Donde 30 es el radio del emborronamiento (blur) radial.
Pero por ejemplo, si queremos aumentar el nivel de rojo, verde, o azul (o de los tres valores) de una imagen, podemos modificar los niveles de blanco y negro de la propia imagen.
tazasPara el ejemplo superior:
$ convert -level 30,100% taza.jpg taza_oscura.jpg
$ convert -channel blue -level 0,50% taza.jpg taza_azul.jpg
$ convert -channel red -level 30,80% taza.jpg taza_arojo.jpg De izquierda a derecha.
Podemos también obtener la imagen a dos colores (blanco y negro), obtenido desde un valor umbral (valores inferiores, se representarán con negro y superiores con blanco), aunque, como veremos en el ejemplo, también podemos filtrar según el canal:
tazas1Para este ejemplo, hice lo siguiente:
$ convert -threshold 25% taza1.jpg tazaBN.jpg
$ convert -channel red,blue -threshold 55% taza.jpg taza_naranja_verde.jpg
$ convert -channel green -threshold 75% taza_magenta.jpg Más efectos de color taza_3Para conseguir el tono sepia hacemos lo siguiente:
$ convert -sepia-tone [umbral] origen destino En el ejemplo hice lo siguiente:
$ convert -sepia-tone 90% taza.jpg taza_sepia.jpg También disponemos del efecto posterizado (si no se aprecia bien en la miniatura, hacer click para ver en grande). Para conseguir el efecto hacemos lo siguiente:
taza_31
$ convert -posterize 4 taza.jpg taza_poster.jpg Donde 4 es el número de niveles con el que vamos a posterizar.
También tenemos el efecto solarizado con el siguiente comando:
$ convert -solarize 2% taza.jpg taza_sol.jpg taza_32Donde el 2% es el umbral deseado para el efecto, que vemos en la siguiente imagen.
Para completar los efectos de color, veamos también cómo podemos cambiar brillo, saturación y tono. Para controlarlo tenemos la orden:
$ convert -modulate [brillo],[saturacion],[tono] origen destino Vemos en el siguiente ejemplo las imágenes con los efectos uno a uno:
tazas2
# En la primera se ha modificado el tono de la imagen:
$ convert -modulate 100,100,142 taza.jpg taza_hue.jpg
# En la segunda se modificó la saturación
$ convert -modulate 100,142,100 taza.jpg taza_sat.jpg
# En la tercera se cambió el brillo:
$ convert -modulate 142,100,100 taza.jpg taza_brillo.jpg Todos estos parámetros se indican en porcentaje.
Rotación y transposición Además de estos efectos de color, encontramos también algunas transformaciones de imagen
tazas3
$ convert -flip taza.jpg taza1.jpg
$ convert -flop taza.jpg taza2.jpg
$ convert -transpose taza.jpg taza3.jpg
$ convert -transverse taza.jpg taza4.jpg taza_2
Para la rotación de la imagen ejecutamos lo siguiente:
$ convert -rotate 40 taza.jpg taza_r.jpg Donde 40 es la cantidad de grados a rotar.
taza_33Para la rotación hay otra orden muy curiosa: polaroid. La podemos utilizar de la siguiente manera:
$ convert -polaroid 40 taza.jpg taza_p.jpg
_____________________________________________________________________________________
Juntando imágenes en una sola Ahora, la cosa se anima, veremos cómo recopilar varias imágenes en el mismo archivo de imagen; habréis visto algún ejemplo en la entrega II, en los que muestro varias imágenes juntas:
variasPara ello usamos montage:
$ montage -tile 4×2 -geometry 200×160+1+0 taza1.jpg taza2.jpg taza3.jpg taza4.jpg hamburgueson1.jpg hamburgueson2.jpg hamburgueson3.jpg hamburgueson4.jpg varias.jpg Donde, con el parámetro tile, especificamos la agrupación de las imágenes ancho x alto (4×2 en este caso) y con geometry, el tamaño de cada imagen 200×160 de máximo, con una separación de 1 pixel a los lados y ninguno verticalmente.
La imagen conserva su aspecto, pero de alto ocupa 160 pixels por lo que existe una pequeña separación.
Añadiendo texto outSin imagen original, simplemente un texto en un archivo de imagen. Obtenido de la siguiente forma:
$ convert -background black -fill red -gravity center -font Verdana -pointsize 20 -size 200×80 caption:’Rojo sobre negro’ rojosobrenegro.png Donde:
-background especifica el color de fondo -fill especifica el color de primer plano -gravity es la alineación, centrada, tanto horizontal como verticalmente. -font indica el tipo de letra -pointsize indica el tamaño de la letra -size indica el tamaño de la imagen (porque no vamos a utilizar ninguna imagen de origen). caption:’Texto’ con ello indicamos el texto out1
$ convert -size 300×120 xc:rgb\(50,50,70\) -fill rgb\(90,150,200\) -gravity SouthEast -font helvetica -pointsize 25 -draw ‘text 10 2 “Poesía Binaria”‘ poesia_binaria.jpg Donde incluimos el texto en una determinada posición: 10×2 desde la esquina inferior derecha (SouthEast), tipo de letra helvetica y tamaño 25; de fondo (50,50,70) y de color (90,150,200).
out2Ahora, aprovecharemos un poco más las capacidades de la orden draw. Para ello, dibujaremos un cuadro en negro dentro de la imagen (antena.jpg de dimensiones 314×300) a modo de marco (verde); luego trazaremos una línea horizontal de color blanco (rojo) en el borde del cuadro que acabamos de dibujar y tras ello escribiremos un texto (azul).
$ convert antena_2.jpg -gravity SouthEast -font helvetica -pointsize 25 -fill black -draw ‘rectangle 0,270 314,300′ -fill white -draw ‘line 0,270 314,270′ -draw ‘text 13 1 “Mi antena Wifi”‘ out.jpg out3Ahora introduciremos el texto directamente en la imagen, pero para facilitar la lectura incluiremos una sobra en el texto.
$ convert antena_2.jpg -gravity North -font helvetica -pointsize 25 -fill black -draw ‘text 0 0 “Mi antena Wifi”‘ -fill white -draw ‘text 1 1 “Mi antena Wifi”‘ out.jpg Podemos incluir de forma opcional -blur 1×1 (por ejemplo) para difumirar el texto que hace de sombra y suavizarla.
________________________________________________________________________________________________
Ya que estamos hartos de ver lo que es capaz de hacer ImageMagick, ahora mezclemos esto con la potencia de la consola, y tendremos una de las herramientas más potentes jamás inventadas en cuanto a imagen digital se refiere.
Modificando imágenes en un directorio Aunque podremos hacer cualquier tipo de modificación, tal y como hemos visto anteriormente, haremos un ejemplo en el que redimensionaremos todos los archivos de un directorio al 50% (muy útil si preparamos en un directorio muchos archivos directamente de una cámara digital para subir a Internet):
$ mogrify -resize 50% directorio/* Con mogrify podemos hacer lo mismo que con convert, sólo que el fichero de origen y de destino es el mismo.
Aunque… ¿y si queremos guardar los archivos originales? Tendremos que hacer un pequeño script para convertir los archivos de un directorio y guardarlos en otro direcorio diferente; pero… y si son muchos ? Tenemos algunas posibilidades:
$ for f in test/*.jpg; do convert -monitor -resize 50% $f “test2/”$f##*/; done Si tenemos todos los archivos en el directorio test, queremos redimensionar al 50% y guardarlos en test2/ con el mismo nombre que tienen. $f##*/ elimina el directorio del nombre del archivo, es lo mismo que la orden basename. Y con el parámetro -monitor veremos más o menos lo que está haciendo convert en cada momento.
Aunque, tal vez queramos un indicador de progreso para saber más o menos cuánto queda y cuántos archivos llevamos, lo podemos hacer con bc y Xdialog:
archivos=`ls test/*.jpg`; total=`echo $archivos | wc -w`; hecho=0; for f in $archivos; do convert -resize 50% $f “test2/”$f##*/; let hecho=$hecho+1; echo “scale=0;$hecho*100/$total”|bc; done | Xdialog –gauge “Progreso…” 10 100 0 En este ejemplo, separamos en variables los archivos a tratar y contamos el total de archivos a procesar. La variable hecho contará cuántos archivos ha convertido hasta el momento.
Luego en el bucle principal convertiremos los archivos e iremos incrementando la variable hecho en 1. Más adelante, con la ayuda de bc calculamos el porcentaje hecho. El bucle lo pasamos con una pipe a Xdialog, con su opción de gauge con lo que iremos indicando el proceso a medida que se vayan convirtiendo archivos.
Como agregar una marca de agua digital a cientos de fotos
mogrify -font /usr/share/fonts/truetype/thai/Purisa.ttf -pointsize 15 -verbose -draw “fill black text 5,23 ‘BERSERK.DESIGN’ fill orange text 6,24 ‘BERSERK.DESIGN’ ” *.png Nota: mogrify es mucho mas ràpido que convert
Basandote en el comando,puedes configurar el tipo de fuente,los colores del texto,el texto a introducir,etc,etc.. a tu gusto.
Añadiendo un texto a todas las imágenes Podemos, además, añadir un texto a todas las imágenes con un formato determinado para incluir el nombre de fichero, ancho, alto, la etiqueta de fichero, etc:
$ mogrify -gravity South -pointsize 20 -fill black -annotate ‘%f %b bytes” * Con lo que anotaremos dentro de la imagen en color negro el nombre del archivo y el tamaño en bytes. Para esto tenemos algunas palabras clave como %f y %b en este enlace: Imagemagick.org (Identify -format).
hamburguesonAunque tal vez queramos poner un texto diferente a cada foto. Imaginemos que tenemos muchos ficheros jpg y muchos ficheros txt. Los ficheros txt tienen el mismo nombre que los jpg y sólo varía la extensión; y queremos plasmar el texto de los txt en los ficheros jpg:
for f in *.jpg; do if [ -r $f%.*.txt ]; then txt=`cat $f%.*.txt`; else txt=”Mis guisos 2010″; fi; echo $txt en $f; mogrify -gravity North -pointsize 15 -fill white -annotate 0x0+10+10 “$txt” $f; done Esta vez, si encontramos el fichero de texto con el mismo nombre que la imagen, solo que con extension txt escribiremos ese texto en la parte superior de la imagen; pero si no, escribiremos “Mis guisos 2010″ y así recorriendo todos los archivos jpg del directorio.
Una animación sencilla destinVamos a crear una transición entre dos imágenes. Y para el ejemplo, hemos utilizado estas dos imágenes:
$ convert -size 720×576 xc:black -gravity Center -fill white -pointsize 250 -font impact -draw ‘text 0 0 A’ a.jpg
$ convert -size 720×576 xc:black -gravity Center -fill white -pointsize 250 -font impact -draw ‘text 0 0 B’ b.jpg Para realizar el fundido hacemos lo siguiente:
n_imgs=30; # Número de imágenes s=`echo “scale=2;100/$n_imgs” | bc` # Porcentaje de inremento de cada paso. o=0; # Visibilidad de la imagen B d=100; # Visibilidad de la imagen A f=0; # Fotograma actual while (( $f < 20 )); do convert -compose blend -set “option:compose:args” $o,$d a.jpg b.jpg -composite dest/anim_$f.jpg; o=`echo “scale=2;$o+$s” | bc`; d=`echo “scale=2;$d-$s” | bc`; f=$(($f+1)); echo “Frame: $f O=$o D=$d”; done Con esto se creará la secuencia de $n_imgs (que al principio le damos valor 30) imágenes en el directorio dest/; todas empezando por anim_.
Si queremos crear un gif animado con esto, podemos hacer lo siguiente:
$ convert dest/anim_0..29.jpg trans.gif
Ponemos el siguiente comando: convert -delay 20 *.png result.gif Donde pone *.png ponemos la extension de las imagenes como *.jpg en 20 ponemos la duracion por imagen cuando mas grande mas lento, y mas chico, mas rapido y en result.gif ponemos el nombre del gif que queramos -En esa carpeta se deberia crear un archivo con extension gif, lo ejecutamos con visor de imagenes gthumb y se deberia mover con las imagenes que pusimos, listo!!! hemos creado nuestro primer gif.
___________________________________________________________________________________________________
http://imagemagick.org/script/index.php http://www.fmwconcepts.com/imagemagick/3Dreflection/index.php
Para ello sólo tenemos que instalar el paquete nautilus-image-converter. En este caso estamos hablando de un plugin, que permite al navegador de archivos redimensionar y rotar las imágenes, siendo especialmente útil, cuando lo queremos hacer de forma masiva (imaginaros 1000 fotos o así).
sudo apt-get install nautilus-image-converter
Debemos reiniciar nautilus o el sistema, y
killall nautilus
a continuación ya podemos ver, que al hacer click en el botón derecho, se nos presentan las dos opciones nuevas en el menú contextual, después ya es cuestión de elegir la tarea a realizar
http://berserk.design/guia-basica-edicion-imagenes-simple-gnulinux/