Marshalscienceguy Posted June 5, 2015 Posted June 5, 2015 How do you turn a WEBP file Into JPG, PNG, GIF and BMP files. Those 3 are accepted on most websites but there is this one site that only does WEBP file and its very hard to convert. I generally save it in MSpaint to convert it but that does not always work. Is there another way to do it?
Acme Posted June 5, 2015 Posted June 5, 2015 Lots of freeware for it out there. converting WEBP file @ Yahoo search
Sensei Posted June 5, 2015 Posted June 5, 2015 (edited) On wikipedia there is mentioned that it's format developed by Google.So I would try opening it in Chrome ("Amongst web browsers, Google Chrome and Opera natively support WebP."), then taking screen-shot, and saving to any file format should work..This way wouldn't need to install anything at least. Edited June 5, 2015 by Sensei
fiveworlds Posted June 5, 2015 Posted June 5, 2015 (edited) You can do so with php using the imagick and gd libraries. Imagick I am using for psd and tiff files. You can download and install imagick from here http://www.imagemagick.org/script/binary-releases.php#windowsit also comes with commandline options ie. convert "image.webp" "image.jpg" so you could make a .exe or regedit to convert files <?php $filename='filename.bmp'; $outputfilename='filename.png'; function imagecreatefrombmp($filename) { //Ouverture du fichier en mode binaire if (! $f1 = fopen($filename,"rb")) return FALSE; //1 : Chargement des ent?tes FICHIER $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); if ($FILE['file_type'] != 19778) return FALSE; //2 : Chargement des ent?tes BMP $BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); $BMP['colors'] = pow(2,$BMP['bits_per_pixel']); if ($BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset']; $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8; $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']); $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4); $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4); $BMP['decal'] = 4-(4*$BMP['decal']); if ($BMP['decal'] == 4) $BMP['decal'] = 0; //3 : Chargement des couleurs de la palette $PALETTE = array(); if ($BMP['colors'] < 16777216) { $PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4)); } //4 : Cr?ation de l'image $IMG = fread($f1,$BMP['size_bitmap']); $VIDE = chr(0); $res = imagecreatetruecolor($BMP['width'],$BMP['height']); $P = 0; $Y = $BMP['height']-1; while ($Y >= 0) { $X=0; while ($X < $BMP['width']) { if ($BMP['bits_per_pixel'] == 24) $COLOR = unpack("V",substr($IMG,$P,3).$VIDE); elseif ($BMP['bits_per_pixel'] == 16) { $COLOR = unpack("n",substr($IMG,$P,2)); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 8) { $COLOR = unpack("n",$VIDE.substr($IMG,$P,1)); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 4) { $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); if (($P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 1) { $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] >>7; elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6; elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5; elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4; elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3; elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2; elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1; elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } else return FALSE; imagesetpixel($res,$X,$Y,$COLOR[1]); $X++; $P += $BMP['bytes_per_pixel']; } $Y--; $P+=$BMP['decal']; } //Fermeture du fichier fclose($f1); return $res; } switch(image_type_to_extension(exif_imagetype($filename),true)){ case ".png": $image = imagecreatefrompng($filename);break; case ".gif": $image = imagecreatefromgif($filename);break; case ".jpg": $image = imagecreatefromjpeg($filename);break; case ".psd": $im = new Imagick($filename); $im->flattenImages(); $im->setImageFormat('jpg'); $im->writeImage('test.jpg'); imagecreatefromjpeg('test.jpg'); break; case ".bmp": $image = imagecreatefrombmp($filename);break; case ".tiff": $im = new Imagick($filename); $im->flattenImages(); $im->setImageFormat('jpg'); $im->writeImage('test.jpg'); imagecreatefromjpeg('test.jpg');break; case ".gd2": $image = imagecreatefromgd2($filename);break; case ".webp": $image = imagecreatefromwebp($filename);break; case ".wbmp": $image = imagecreatefromwbmp($filename);break; case ".xbm": $image = imagecreatefromxbm($filename);break; case ".xpm": $image = imagecreatefromxpm($filename);break; } if(isset($image)){ imagepng($image, 'recipies.png'); imagedestroy($image); } ?> Edited June 5, 2015 by fiveworlds
Science world Posted September 12, 2015 Posted September 12, 2015 You can do so with php using the imagick and gd libraries. Imagick I am using for psd and tiff files. You can download and install imagick from here http://www.imagemagick.org/script/binary-releases.php#windowsit also comes with commandline options ie. convert "image.webp" "image.jpg" so you could make a .exe or regedit to convert files <?php $filename='filename.bmp'; $outputfilename='filename.png'; function imagecreatefrombmp($filename) { //Ouverture du fichier en mode binaire if (! $f1 = fopen($filename,"rb")) return FALSE; //1 : Chargement des ent?tes FICHIER $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); if ($FILE['file_type'] != 19778) return FALSE; //2 : Chargement des ent?tes BMP $BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); $BMP['colors'] = pow(2,$BMP['bits_per_pixel']); if ($BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset']; $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8; $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']); $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4); $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4); $BMP['decal'] = 4-(4*$BMP['decal']); if ($BMP['decal'] == 4) $BMP['decal'] = 0; //3 : Chargement des couleurs de la palette $PALETTE = array(); if ($BMP['colors'] < 16777216) { $PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4)); } //4 : Cr?ation de l'image $IMG = fread($f1,$BMP['size_bitmap']); $VIDE = chr(0); $res = imagecreatetruecolor($BMP['width'],$BMP['height']); $P = 0; $Y = $BMP['height']-1; while ($Y >= 0) { $X=0; while ($X < $BMP['width']) { if ($BMP['bits_per_pixel'] == 24) $COLOR = unpack("V",substr($IMG,$P,3).$VIDE); elseif ($BMP['bits_per_pixel'] == 16) { $COLOR = unpack("n",substr($IMG,$P,2)); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 8) { $COLOR = unpack("n",$VIDE.substr($IMG,$P,1)); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 4) { $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); if (($P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 1) { $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] >>7; elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6; elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5; elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4; elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3; elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2; elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1; elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } else return FALSE; imagesetpixel($res,$X,$Y,$COLOR[1]); $X++; $P += $BMP['bytes_per_pixel']; } $Y--; $P+=$BMP['decal']; } //Fermeture du fichier fclose($f1); return $res; } switch(image_type_to_extension(exif_imagetype($filename),true)){ case ".png": $image = imagecreatefrompng($filename);break; case ".gif": $image = imagecreatefromgif($filename);break; case ".jpg": $image = imagecreatefromjpeg($filename);break; case ".psd": $im = new Imagick($filename); $im->flattenImages(); $im->setImageFormat('jpg'); $im->writeImage('test.jpg'); imagecreatefromjpeg('test.jpg'); break; case ".bmp": $image = imagecreatefrombmp($filename);break; case ".tiff": $im = new Imagick($filename); $im->flattenImages(); $im->setImageFormat('jpg'); $im->writeImage('test.jpg'); imagecreatefromjpeg('test.jpg');break; case ".gd2": $image = imagecreatefromgd2($filename);break; case ".webp": $image = imagecreatefromwebp($filename);break; case ".wbmp": $image = imagecreatefromwbmp($filename);break; case ".xbm": $image = imagecreatefromxbm($filename);break; case ".xpm": $image = imagecreatefromxpm($filename);break; } if(isset($image)){ imagepng($image, 'recipies.png'); imagedestroy($image); } ?> Thank you so much:)
fiveworlds Posted September 13, 2015 Posted September 13, 2015 I actually created a few executables to get around the need for installing imagemagick or the gd library. https://github.com/davidmather/imagetobmp/blob/master/bin/Release/imagetobmp.exe?raw=true https://github.com/davidmather/imagetoemf/blob/master/imagetoemf/bin/Debug/imagetoemf.exe?raw=true https://github.com/davidmather/imagetoexif/blob/master/imagetoexif/bin/Debug/imagetoexif.exe?raw=true https://github.com/davidmather/imagetogif/blob/master/imagetogif/bin/Debug/imagetogif.exe?raw=true https://github.com/davidmather/imagetojpg/blob/master/imagetojpg/bin/Debug/imagetojpg.exe?raw=true https://github.com/davidmather/imagetoicon/blob/master/imagetoicon/bin/Debug/imagetoicon.exe?raw=true Which run as <?php exec(exename inputfilename outputfilename); ?>
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now