Convertir archivos .otf a .ttf en Ubuntu

En uno de los proyectos que estoy trabajando me solicitaron generar un documento con una tipografía específica.

Sin embargo, las fuentes que me dieron tenían la extensión OTF (OpenType) y yo las necesitaba en TTF (TrueType) para poderlas utilizar con Prawn, un generador de PDFs para Ruby.

A continuación te presento un par de opciones para convertir archivos OTF a TTF.

Convertidor bash script

Primero necesitamos instalar FontForge:

  1. sudo apt-get install fontforge

Después crea un archivo llamado otf2ttf.sh con el siguiente contenido:

  1. #!/usr/local/bin/fontforge
  2. # Quick and dirty hack: converts a font to truetype (.ttf)
  3. Print("Opening "+$1);
  4. Open($1);
  5. Print("Saving "+$1:r+".ttf");
  6. Generate($1:r+".ttf");
  7. Quit(0);

Y úsalo de la siguiente forma:

  1. fontforge -script otf2ttf.sh NOMBRE_DE_MI_FUENTE.otf

Para convertir varios archivos que estén en un mismo directorio, lo haces de la siguiente manera:

  1. for i in *.otf; do fontforge -script otf2ttf.sh $i; done

Convertidor online

Si no tienes Linux, puedes usar un convertidor en línea como el que se ofrece en el sitio de:
typeface.js – Convert and Download Fonts

Depredado en

Convert .otf to .ttf Font on Ubuntu

Cómo convertir una imagen .bin .cue a .iso

Seguramente has descargado alguna vez una imagen de un CD o DVD que viene en un formato que incluye dos archivos: un .bin y un .cue.

Pero, ¿y cómo se monta eso en Ubuntu? el gmount no lo hace…

Bueno, una solución que encontré fue instalar bchunk y convertir ese par de archivos en uno con extensión .iso.

Abre una terminal y teclea:

sudo apt-get install bchunk

Usando la terminal entra al directorio donde están los archivos .cue y .bin y teclea lo siguiente:

bchunk mi_imagen.cue mi_imagen.bin mi_nueva_imagen

Eso generará un nuevo archivo mi_nueva_imagen.iso ¡listo para montarse en el gmount! 😀

Cómo convertir archivos de imágenes RAW .pef a .jpg

[singlepic=480,120,,,left]

Tengo una cámara semi profesional Pentax, y después de tomar un diplomado en fotografía digital, aprendí que es mejor tomar las fotos en formato RAW.

De esta manera se guardan todos los valores necesarios para hacer una buena edición de la imagen.

Si no te interesa editarlas, o hacer un proceso de revelado (con DCRAW o algo así) con ellas, entonces a lo mejor te convenga más tomarlas en JPG para ahorrarte un buen de espacio y poder guardar muchas más.

Por ejemplo, con una memoria de 2GB, puedo tomar 666 fotos en JPG de alta calidad (~3MB por archivo), pero sólo 180 en modo RAW (~10MB por archivo).

El caso es que estuve buscando un rato en internet sobre cómo convertir imágenes en formato .pef (RAW) a .jpg y no encontré una forma fácil y rápida.

Sin embargo, después de experimentar un rato, hallé una manera:

  1. sudo apt-get install ufraw imagemagick
  1. for i in `ls`; do convert -resize 900x900 -quality 85 $i resized_$i.jpg; done

Sip, es básicamente el mismo comando de mi otro artículo, sólo instale un paquete que necesitaba (ufraw) y modifiqué el script para agregarle la extensión .jpg y ¡listo! 😀

Espero les sea útil.

Convertir un número a palabras con Ruby

Hace poco necesitaba escribir una cantidad usando palabras, así que me di una vuelta por internet para ver si algún alma caritativa había publicado alguna implementación en Ruby.

En este otro blog y también en este me encontré con una solución, pero revisando el código fuente se puede ver que tiene un problema:

12000000000.to_words
=> "doce mil "

Con mi programa:

numero_a_palabras(12000000000)
=> "doce mil millones"

Así que sin más, les comparto mi implementación. 🙂

  1. def numero_a_palabras(numero)
  2.   de_tres_en_tres = numero.to_i.to_s.reverse.scan(/\d{1,3}/).map{|n| n.reverse.to_i}
  3.  
  4.   millones = [
  5.     {true => nil, false => nil},
  6.     {true => 'millón', false => 'millones'},
  7.     {true => "billón", false => "billones"},
  8.     {true => "trillón", false => "trillones"}
  9.   ]
  10.  
  11.   centena_anterior = 0
  12.   contador = -1
  13.   palabras = de_tres_en_tres.map do |numeros|
  14.     contador += 1
  15.     if contador%2 == 0
  16.       centena_anterior = numeros
  17.       [centena_a_palabras(numeros), millones[contador/2][numeros==1]].compact if numeros > 0
  18.     elsif centena_anterior == 0
  19.       [centena_a_palabras(numeros), "mil", millones[contador/2][false]].compact if numeros > 0
  20.     else
  21.       [centena_a_palabras(numeros), "mil"] if numeros > 0
  22.     end
  23.   end
  24.  
  25.   palabras.compact.reverse.join(' ')
  26. end
  27.  
  28. def centena_a_palabras(numero)
  29.   especiales = {
  30.     11 => 'once', 12 => 'doce', 13 => 'trece', 14 => 'catorce', 15 => 'quince',
  31.     10 => 'diez', 20 => 'veinte', 100 => 'cien'
  32.   }
  33.   if especiales.has_key?(numero)
  34.     return especiales[numero]
  35.   end
  36.  
  37.   centenas = [nil, 'ciento', 'doscientos', 'trescientos', 'cuatrocientos', 'quinientos', 'seiscientos', 'setecientos', 'ochocientos', 'novecientos']
  38.   decenas = [nil, 'dieci', 'veinti', 'treinta', 'cuarenta', 'cincuenta', 'sesenta', 'setenta', 'ochenta', 'noventa']
  39.   unidades = [nil, 'un', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete', 'ocho', 'nueve']
  40.  
  41.   centena, decena, unidad = numero.to_s.rjust(3,'0').scan(/\d/).map{|i| i.to_i}
  42.  
  43.   palabras = []
  44.   palabras << centenas[centena]
  45.  
  46.   if especiales.has_key?(decena*10 + unidad)
  47.     palabras << especiales[decena*10 + unidad]
  48.   else
  49.     tmp = "#{decenas[decena]}#{' y ' if decena > 2 && unidad > 0}#{unidades[unidad]}"
  50.     palabras << (tmp.blank? ? nil : tmp)
  51.   end
  52.  
  53.   palabras.compact.join(' ')
  54. end

Si encuentras algún error en el programa, anótalo en un comentario abajo.

Para los que quieran conocer un poco más acerca de la solución de éste problema, continuen leyendo.

Continuar leyendo “Convertir un número a palabras con Ruby”

Cómo cambiar el tamaño a un lote de imágenes en Ubuntu Gutsy Gibbon 7.10

[singlepic=480,120,,,left]

Hace unos días tuve que cambiar el tamaño y la calidad de compresión a un numeroso grupo de imágenes JPG que había tomado con mi cámara digital.

Y la verdad me daba una flojera enorme abrir una por una en el GIMP y hacer el proceso a mano… hasta que me topé con un script muy útil.

Primero debemos instalar Image Magick:

  1. sudo apt-get install imagemagick

El script en cuestión es:

  1. for i in `ls`; do convert -resize 900x900 -quality 85 $i resized_$i; done

Para utilizarlo abre una terminal y ve al directorio donde estén las imágenes que deseas convertir. Copia y pega el script de arriba en la terminal y edita los valores a tu gusto (el 900×900 son valores máximos, la imagen no pierde proporción).

Los nombres de los archivos convertidos comenzarán con resized_ (también lo puedes cambiar editando el script).

¡Tan tan! 😉