Failed to load image al usar escpos-php de Mike42

En este post voy a relatar un error que aparece al comunicarse con impresoras térmicas desde PHP usando la librería ESC POS de Mike42. En este caso el error es Failed to load image que ocurre cuando queremos imprimir una imagen en una impresora térmica.

Recuerda que este error aparece si la imagen no es válida, no existe, no tienes la extensión gd y/o imagick, etcétera. Pero si crees que cuentas con todo eso y te sigue dando problemas entonces sigue leyendo.

Te lo repito: antes de revisar la solución listada más adelante, por favor comprueba que la imagen que quieres imprimir existe y que tienes habilitadas las extensiones necesarias.

(más…)

Rotar imagen en navegador web con JavaScript y canvas

En este artículo te voy a enseñar a rotar una imagen con HTML y JavaScript a través de canvas, de manera que podrás girar una imagen los grados que tú quieras, es decir, rotarla 90, 180, 270 o cualquier cantidad.

Veremos cómo cargar una imagen, pintarla en un canvas, agregarle rotación y después hacer cosas como descargar esa imagen o enviarla al backend que puede ser con Node, C#, PHP, etcétera.

(más…)

Bot de Telegram - Agregar globo de texto o bocadillo a imagen para memes

Agregar globo de texto a imagen con bot de Telegram

Hoy vamos a ver cómo agregar un globo o bocadillo a cualquier imagen con un bot de Telegram usando Node y JavaScript para dicha tarea.

Una cosa será el bot de Telegram y otra el procesamiento de la imagen. Podemos usar ambas cosas por separado y mejorar cada una de ellas o combinarlas.

Bot de Telegram - Agregar globo de texto o bocadillo a imagen para memes

Bot de Telegram – Agregar globo de texto o bocadillo a imagen para memes

Técnicamente hablando vamos a escuchar si el usuario envía una imagen en Telegram (ya sea en grupos o en privado) y una vez que la envíe veremos el texto que la acompaña.

En caso de que el texto coincida con la orden vamos a combinar las 2 imágenes, redimensionando el globo o bocadillo según sea el caso y después vamos a responder con esa imagen ya modificada.

Nota: esto fue hecho por diversión para hacer memes y comentar rápidamente en Facebook o similares, aunque se pueden sacar varias cosas de aquí.

(más…)

Cambiar fondo de pantalla de manera remota

El día de hoy veremos cómo cambiar la imagen de fondo de escritorio de manera remota para molestar al usuario.

Dejaremos un programa ejecutándose en segundo plano, mismo que va a revisar cada X segundos si debe cambiar el fondo y en caso de que sí va a descargar la imagen del sitio que le indiquemos para colocarla como nuevo fondo.

Mientras el usuario esté conectado a internet y el programa se esté ejecutando, no se podrá hacer nada para cambiar el fondo de pantalla al original, ya que nuestro programa va a cambiar la imagen de escritorio cada tiempo que nosotros indiquemos.

Al final esto es para hacer bromas, no le veo otra utilidad. Eso sí, vas a aprender varias cosas, por ejemplo, cómo consultar un gist con HTTP, poner un cron en Go e invocar a un programa de C#.

(más…)

Imprimir en impresora térmica conectada por Bluetooth en Android desde JavaScript

Imprimir ticket en impresora térmica bluetooth desde JavaScript con Android

El día de hoy vamos a hacer una cosa que varios me han pedido y que siempre he querido hacer: imprimir en una impresora térmica Bluetooth desde Android usando JavaScript.

Básicamente vamos a enviar un ticket a una thermal printer con Bluetooth desde el navegador web sin cuadros de diálogo ni cosas extrañas: tan solo usando un plugin gratuito desarrollado por mí y JavaScript puro.

Debido a que esto es hecho desde el navegador con JS luego puedes usarlo para imprimir en una impresora térmica Bluetooth desde Vue, React, Angular, TypeScript, etcétera: cualquier cosa que compile, use o traspile a JavaScript.

(más…)

Error imprimiendo imagen en impresora térmica - Caracteres raros

Error de impresión de imagen en impresora térmica

El día de hoy vamos a ver la posible solución al siguiente problema:

Al intentar imprimir una imagen en una impresora térmica, aparecen caracteres extraños, caracteres raros o letras al azar o aleatorias en lugar de la imagen.

Es decir, en lugar de que se imprima la imagen se imprime algo como lo siguiente:

Error imprimiendo imagen en impresora térmica - Caracteres raros

Error imprimiendo imagen en impresora térmica – Caracteres raros

Veamos por qué sucede esto desde mi experiencia y cómo podemos solucionarlo.

(más…)

Dart - Convertir imagen RGBA a blanco y negro

Dart: convertir imagen a blanco y negro

En este corto post de programación con Dart te mostraré cómo convertir una imagen (sin importar si es PNG o JPG)  a blanco y negro, manteniendo los niveles para que la imagen se siga viendo bien incluso si solo está en blanco y negro.

El código está escrito en el lenguaje de programación Dart y puede ser usado más tarde en Flutter. De hecho eso haré yo, pues ando porteando mi plugin de impresoras térmicas para Android.

(más…)

Ticket impreso con impresora Xprinter usando plugin - Soporta imágenes, códigos QR, de barras y acentos

Plugin para impresoras térmicas versión 3

Me complace anunciar la versión 3 (y final) de mi plugin que permite imprimir en impresoras térmicas de manera gratuita.

Este plugin combina lo mejor de las otras versiones en una sola. A continuación veamos sus principales características:

  1. Impresión de texto
  2. Impresión de texto con acentos, definiendo la página de códigos de caracteres o code page. Podrás imprimir texto con ñ, vocales con tilde, diéresis, etcétera.
  3. Soporte para imágenes de una URL de internet (puede ser incluso localhost), en base64 o del almacenamiento local
  4. Códigos de barras
  5. Códigos QR
  6. Cambio de tamaño de texto
  7. Subrayado
  8. Enfatizado
  9. Alineación
  10. Apertura de cajón
  11. Corte de papel
  12. Rotación al imprimir
  13. Impresión inversa
  14. Impresión blanco y negro inversa
  15. No necesita internet. Trabaja completamente fuera de línea
  16. No tiene restricción de cantidad de tickets, dominios ni lenguajes de programación.
  17. Definición de caracteres personalizados de 24×12, con esto podrás definir un propio carácter usando una cuadrícula. Ya podrás imprimir el símbolo del euro, yen, bitcoin, centavo y cualquier cosa que se pueda representar con 24×12 puntos
  18. Compatible con Windows, Linux y Raspberry Pi (técnicamente compatible con Raspbian en procesadores ARM)

Además, existirá una versión con licencia en caso de que quieras adquirirla. a continuación explicaré todos los detalles del plugin.

(más…)

Cambiar imagen de fondo de escritorio en Windows usando C# de manera programada

Cambiar fondo de escritorio de Windows con C#

En este post veremos cómo cambiar la imagen de fondo (background) de manera programada en Windows usando C#.

Con lo que veremos podrás cambiar el fondo desde un script de C# o cualquier otro lenguaje invocando al ejecutable de C#.

Al final podrás invocar al ejecutable compilado desde otros lenguajes de programación como PHP, JS (del lado del servidor), Java, Python, etcétera.

(más…)

Reducir tamaño de imagen con JavaScript

Reducir tamaño de imagen con JavaScript

En el post de hoy te enseñaré a comprimir una imagen usando JavaScript al seleccionar una imagen con un input de tipo file.

Con comprimir me refiero a reducir el tamaño del archivo de imagen, cambiando su calidad. Verás que podrás reducir la imagen hasta el 20 % de su calidad sin que se note (y podrás comprimirla incluso más).

Reducir tamaño de imagen con JavaScript – Antes y después, al poner el 30 % de calidad

De este modo puedes reducir el tamaño de una imagen antes de subirla a un servidor o cosas por el estilo (cambiando su peso, no su medida en pixeles). Todo esto lo haremos del lado del cliente trabajando con JS, Canvas y URL.

Yo hago este post porque estoy usando el storage de Firebase y necesito subir archivos pero no quiero que se agote mi plan gratuito.

También te servirá a ti para ahorrar ancho de banda y almacenamiento en tu servidor, o tal vez solo quieras hacer una app que reduzca la calidad de las imágenes.

(más…)

Desenfoque de caja con Python - Difuminado de imagen

Desenfoque de caja (difuminado) con Python

En el artículo de hoy te voy a enseñar a difuminar una imagen aplicando el desenfoque de caja con Python. Vamos a leer la imagen como una matriz e ir modificando cada pixel.

El desenfoque de caja se logra tomando los pixeles vecinos del pixel en cuestión, tomando los RGB de cada uno y promediándolos.

Con “pixeles vecinos” me refiero al pixel que está arriba, abajo, a la derecha, a la izquierda, y en las 4 diagonales posibles.

Al final podremos implementar el desenfoque de caja o box blur en Python manualmente sin usar librerías.

(más…)