php bmp转jpg有哪些实现方法

  介绍

本篇文章为大家展示了php bmp转jpg有哪些实现方法,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

php bmp转jpg的实现方法:首先开启gd扩展库,然后用“function_exist()函数“ImageCreateFromBMP”检查是否存在,最后通过“ImageCreateFromBMP_private”方法实现转换即可。

进行图片格式转换前,先输出phpinfo()查看php库信息,查看gd扩展库是否开启,若未开启,打开php。ini文件,

这里转换成为jpg格式需要支持JPEG支持,png需要png支持支持,对应的先检查自己转的格式是否支持

 php bmp转jpg有哪些实现方法

imagejpeg()函数失败也许是你的文件夹权限问题,得多注意

可以先用function_exist()函数ImageCreateFromBMP检查是否存在,下例中的ImageCreateFromBMP_private用来代替ImageCreateFromBMP方法

示例代码如下:

& lt; php ?   $ srcFile=& # 39; test.bmp& # 39;;//需要转换的图片信息=getimagesize美元($ srcFile);   $ srcFileExt=$ info [& # 39; mime # 39;];//判断是否是bmp格式如果(srcFileExt美元==& # 39;图像/x-ms-bmp& # 39;){$结果=changeBMPtoJPG ($ srcFile);如果美元(结果){echo $结果;   其他}{回声“转换失败!“;   }   其他}{回声“该图片不是bmp格式“;   }   退出;函数ImageCreateFromBMP_private ($ filename){如果!$ f1=fopen(文件名,美元“rb"))返回false;$ FILE=解压(“vfile_type/Vfile_size/Vreserved/Vbitmap_offset",从文件中读(f1美元,14));if($文件[& # 39;file_type& # 39;] !=19778)返回false;$ BMP=解压(& # 39;Vheader_size/Vwidth Vheight/vplanes vbits_per_pixel& # 39;.   & # 39;/Vcompression/Vsize_bitmap/Vhoriz_resolution& # 39;.   & # 39;/Vvert_resolution/Vcolors_used/Vcolors_important& # 39;,从文件中读(f1美元,40));$ BMP[& # 39;颜色# 39;]=战俘(2,BMP美元[& # 39;bits_per_pixel& # 39;]);如果(BMP美元[& # 39;size_bitmap& # 39;]==0)美元BMP [& # 39; size_bitmap& # 39;]=$文件[& # 39;file_size& # 39;] - $文件[& # 39;bitmap_offset& # 39;];$ BMP [& # 39; bytes_per_pixel& # 39;]=$ BMP (& # 39; bits_per_pixel& # 39;)/8;$ BMP [& # 39; bytes_per_pixel2& # 39;]=装天花板(BMP美元[& # 39;bytes_per_pixel& # 39;]);$ BMP[& # 39;贴花# 39;]=(BMP美元[& # 39;宽度# 39;]*美元BMP (& # 39; bytes_per_pixel& # 39;)/4);$ BMP[& # 39;贴花# 39;]-=地板(BMP美元[& # 39;宽度# 39;]*美元BMP (& # 39; bytes_per_pixel& # 39;)/4);$ BMP[& # 39;贴花# 39;]=4 - (4 * $ BMP[& # 39;贴花# 39;]);如果(BMP美元[& # 39;贴花# 39;]==4)美元BMP[& # 39;贴花# 39;]=0;$面板=数组();如果(BMP美元[& # 39;颜色# 39;]& lt;16777216){$面板=解压(& # 39;v # 39;。$ BMP[& # 39;颜色# 39;],从文件中读(f1, BMP美元[& # 39;颜色# 39;]* 4));   }$ IMG=从文件中读(f1, BMP美元[& # 39;size_bitmap& # 39;]);见=美元对应(0);(res=imagecreatetruecolor美元BMP[& # 39;宽度# 39;],美元BMP[& # 39;高度# 39;]);$ P=0;Y=BMP美元[& # 39;高度# 39;]- 1;而($ Y祝辞=0){$ X=0;而($ X & lt;$ BMP[& # 39;宽度# 39;)){开关(BMP美元[& # 39;bits_per_pixel& # 39;)){例32:$颜色=解压(“V", substr (IMG, P,美元3)。见美元);打破;例24:$颜色=解压(“V", substr (IMG, P,美元3)。见美元);打破;例16:$颜色=解压(“n", substr (IMG, P,美元2));[1]=颜色调色板美元(颜色[1]+ 1美元);打破;例8:$颜色=解压(“n",见美元。substr (IMG, P,美元1));[1]=颜色调色板美元(颜色[1]+ 1美元);打破;案例4:$颜色=解压(“n",见美元。substr (IMG美元,地板($ P), 1));如果(($ P * 2) % 2==0)颜色[1]=美元(美元颜色[1]在祝辞4);其他的   颜色(颜色[1]=美元[1],0 x0f);[1]=颜色调色板美元(颜色[1]+ 1美元);打破;案例1:$颜色=解压(“n",见美元。substr (IMG美元,地板($ P), 1));如果(($ P * 8) % 8==0)[1]=$颜色美元[1]在祝辞7;elseif (($ P * 8) % 8==1)颜色[1]=美元(美元颜色[1],0 x40)在祝辞6;elseif (($ P * 8) % 8==2)颜色[1]=美元(美元颜色[1],0 x20)在祝辞5;elseif (($ P * 8) % 8==3)颜色[1]=美元(美元颜色[1],0 x10)在祝辞4;elseif (($ P * 8) % 8==4)颜色[1]=美元(美元颜色[1],0×8)在祝辞3;elseif (($ P * 8) % 8==5)颜色[1]=美元(美元颜色[1],0 x4)在祝辞2;elseif (($ P * 8) % 8==6)颜色[1]=美元(美元颜色[1],0 x2)在祝辞1;elseif (($ P * 8) % 8==7)颜色[1]=美元(美元颜色[1],0 x1);[1]=颜色调色板美元(颜色[1]+ 1美元);打破;默认值:返回错误;打破;   }      imagesetpixel ($, $ X, Y,美元颜色[1]);$ X + +;$ P +=$ BMP [& # 39; bytes_per_pixel& # 39;];   }$ Y,;$ P +=$ BMP[& # 39;贴花# 39;];   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

php bmp转jpg有哪些实现方法