Pero que pasa si quereis compartir con el mundo vuestra cancion mp3 favorita, vuestro ROM favorito, vuestro documento de Word en el que estais trabajando...?
No se podia... hasta ahora :'))) Producto de mi aburrimiento he creado un shell-script para windows que convierte con ffmpeg un archivo ZIP (Aunque tambien valdria RAR y 7Z) en una imagen PNG que podeis subir a ask.fm, para mas tarde poder decodificarla de nuevo.
igual que digo ask.fm también valdria cualquier otro sitio que permita subir imagenes PNG sin perdida.
¿Como funciona? Lo primero que teneis que hacer es descargar ffmpeg si no lo teneis aun, y Crear los siguientes archivos *.bat
"ARRASTRE ZIP AQUI.bat"
@echo off
set /a pixeles= %~z1% / 3
set c=0
:raiz
set /a c= %c%+1
set /a x= %c%*%c%
if %x% LSS %pixeles% goto raiz
echo resolucion %c% x %c%
set /a nbytes= %c% * %c% * 3
set /a nulls= %nbytes% - %~z1%
copy %1% temp.rar
:bucle
if /I %nulls% LEQ 0 (goto ffmpeg)
echo "juanmv94" >> temp.rar
set /a nulls=%nulls%-13
goto bucle
:ffmpeg
ffmpeg -f rawvideo -s %c%x%c% -pix_fmt rgb24 -i temp.rar salida.png
del temp.rar
"ARRASTRE PNG AQUI.bat"
@echo off
ffmpeg -i %1% -f rawvideo -pix_fmt rgb24 salida.zip
El nombre de los archivos son autodescriptivos. Para codificar se arrastra el zip al primer script, y para decodificar se arrastra el archivo PNG al segundo.
Detalles tecnicos:
El script convierte un archivo binario a un mapa de bits de rgb de 24 bits que se codificará en PNG.
Lo primero que hace el script al codificar es calcular las dimensiones que tendrá la imagen calculando la raiz cuadrada. Los pixeles sobrantes del cuadrado mas pequeño que contenga el archivo se rellenaran con la etiqueta en texto plano "juanmv94" la cual se repetira hasta llenar el cuadrado.
Para decodificar simplemente convertimos el archivo PNG a mapa de bits y extraemos el contenido RAW al archivo ZIP en este caso.
No hay comentarios:
Publicar un comentario