Creando convertidor de imágenes con JavaScript

Acabo de crear un conversor de formato de imágenes muy simple usando JavaScript del lado del cliente. Es un conversor muy simple que te permite convertir entre formatos de imágenes como lo son JPG, PNG, AVIF y WEBP. https://parzibyte.me/apps/conversor-imagenes/ Con este conversor puedes convertir de webp a png, webp a avif, webp a jpg y todas las combinaciones posibles entre estos formatos. El conversor es realmente rápido, basta con seleccionar el formato de salida, la calidad y listo, una vez que selecciones la imagen se va a descargar la misma imagen pero con el nuevo formato, así de simple. ...

agosto 3, 2025 · 3 min · 492 palabras · Parzibyte

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web con JavaScript. La ventaja de WASM es que, aparte de ser rápido, permite programar en otro lenguaje y aprovechar las librerías presentes en el mismo. Personalmente he usado Golang con WebAssembly para crear un generador de credenciales, códigos QR y códigos de barras. Todo el procesamiento y generación de imágenes se hace con Go, para luego exportar los resultados a JavaScript. En este post voy a documentar **cómo exportar un arreglo de tipo byte ([]**byte) de Go a un Uint8Array de JavaScript, ya que, como te lo dije anteriormente, esto sirve cuando creamos un archivo binario con Go y queremos exportarlo a JavaScript. Además, un Uint8Array sí puede ser transportado a través de un WebWorker usando el structured clone algorithm. ...

enero 21, 2025 · 3 min · 633 palabras · Parzibyte

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica conectada a una computadora desde JavaScript en un teléfono Android. Es decir: Vas a tener una aplicación web programada con JavaScript Usando el navegador del móvil Android vas a acceder a dicha aplicación web Por otro lado, en una computadora de escritorio, tendrás conectada la impresora térmica y mi plugin versión 1 Desde la app web, con un botón o acción del usuario vas a invocar a una APK La APK que es como un puente o proxy se va a comunicar con el plugin de la computadora Dicho con otras palabras vas a imprimir desde Android a una computadora de la red local. La APK adicional servirá porque los navegadores no permiten hacer peticiones http a sitios que no cuenten con https, y las direcciones ip de la red local no tienen SSL por obvias razones. Finalmente, explicado con otras palabras, la arquitectura será: Código JavaScript del navegador web en Android -> Aplicación APK -> Plugin escuchando en computadora Veamos cómo hacerlo. ...

diciembre 12, 2024 · 6 min · 1105 palabras · Parzibyte

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly (con Golang) en Vue 3 con Vite y Pinia. Voy a explicar cómo comunicar las funciones de WASM con JavaScript y viceversa, dejando mucho código del lado de Golang con WASM. Toma en cuenta que es una documentación muy específica a mi modo de trabajo. No esperes un tutorial paso a paso. ...

noviembre 5, 2024 · 4 min · 783 palabras · Parzibyte

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores que quiero documentar para ayudar a otros usuarios que experimenten las mismas fallas. Cabe mencionar que mi entorno de trabajo es Comlink con WebAssembly, Vue 3, Vite y Pinia. Varias de esas tecnologías no afectan al uso de Comlink pero me parece importante mencionarlas. Estos errores, en un contexto de JavaScript puro son fáciles de solucionar. El Maximum call stack size exceeded normalmente es causado porque una función recursiva se ha salido de control, y el cannot read property of undefined es porque una variable es undefined y tratamos de leer una propiedad. Sin embargo, con Comlink los errores son distintos. ...

noviembre 5, 2024 · 2 min · 375 palabras · Parzibyte

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un “top level await” esperando a que una promesa se resuelva dentro de una store de Pinia con Vue 3. Para usar await con Pinia debes esperar a que la promesa se resuelva fuera de la definición de la store. ...

noviembre 5, 2024 · 2 min · 302 palabras · Parzibyte

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que se componga de CSS, JavaScript y HTML se puede convertir en una PWA, y ese también es el caso con Vue 3. Aunque Vue 3 con Vite compila a CSS, HTML y JS que podemos convertir a PWA quise darme a la tarea de documentar el proceso de creación. Por favor toma en cuenta que te recomiendo revisar el siguiente artículo para saber lo básico sobre las PWA: https://parzibyte.me/blog/posts/crear-publicar-progressive-web-app-convertir-app-web-pwa/ Veamos entonces cómo convertir una aplicación de Vue 3 con Vite en una PWA. ...

noviembre 5, 2024 · 6 min · 1148 palabras · Parzibyte

Convertir OffscreenCanvas a imagen en base64

La API de OffscreenCanvas permite trabajar con un canvas en JavaScript sin tener que usar un elemento <canvas> HTML. Hoy te voy a enseñar cómo convertir ese OffscreenCanvas a una imagen codificada en base64, ya que este OffscreenCanvas no permite usar toDataURL. ...

septiembre 25, 2024 · 1 min · 159 palabras · Parzibyte

Generador de números aleatorios online

Hoy te quiero compartir una herramienta en línea para generar números aleatorios directamente en el navegador web. Puedes especificar el límite inferior, límite superior y cantidad de números aleatorios que quieres generar. También puedes especificar el separador de números aleatorios para que sea una coma, un punto, un espacio, un salto de línea o cualquier carácter. El generador de números aleatorios permite mostrar los números generados o descargarlos en un archivo de texto (extensión txt). ...

agosto 29, 2024 · 2 min · 426 palabras · Parzibyte

Solución a ERR_SSL_CIPHER_OPERATION_FAILED

Hoy voy a tratar de solucionar el error ERR_SSL_CIPHER_OPERATION_FAILED que aparece al usar npm install con, obviamente, Node. Te voy a relatar los problemas que tuve al encontrar ERR SSL CIPHER OPERATION FAILED y la solución que apliqué. ...

agosto 3, 2024 · 2 min · 287 palabras · Parzibyte