返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP怎么处理bmp格式的图片
  • 883
分享到

PHP怎么处理bmp格式的图片

2024-04-02 19:04:59 883人浏览 安东尼
摘要

这篇“PHP怎么处理bmp格式的图片”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php怎

这篇“PHP怎么处理bmp格式的图片”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php怎么处理bmp格式的图片”文章吧。

  Array

  (

  [0]=>494

  [1]=>260

  [2]=>6

  [3]=>width="494"height="260"

  [bits]=>24

  [mime]=>image/x-ms-bmp

  )

  仔细看下,上面打印的数组,mime为image/x-ms-bmp,也就是bmp格式的,印象中php的gd库没有处理这个函数,后来我便在配置文件中,只要mime为这种的便不能上传。

  晚上回来后,我便在网上查找php处理bmp相关方法,后来终于在stackoverflow中找到了,帖子里说进入官网的有关imagecreate的函数评论,有个ImageCreateFromBMP方法,先把bmp格式的文件给此函数调用,再用imagejpeg保存就行,后来试了下,发现imagepng也行,下面贴出代码。

  <?php

  functionImageCreateFromBMP($filename){

  //Ouverturedufichierenmodebinaire

  if(!$f1=fopen($filename,"rb"))

  returnFALSE;

  //1:Chargementdesent�tesFICHIER

  $FILE=unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset",fread($f1,14));

  if($FILE['file_type']!=19778)

  returnFALSE;

  //2:Chargementdesent�tesBMP

  $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:Chargementdescouleursdelapalette

  $PALETTE=array();

  if($BMP['colors']<16777216){

  $PALETTE=unpack('V'.$BMP['colors'],fread($f1,$BMP['colors']*4));

  }

  //4:Cr�ationdel'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

  returnFALSE;

  imagesetpixel($res,$X,$Y,$COLOR[1]);

  $X++;

  $P+=$BMP['bytes_per_pixel'];

  }

  $Y--;

  $P+=$BMP['decal'];

  }

  //Fermeturedufichier

  fclose($f1);

  return$res;

  }

  $pic='2.bmp';

  $res=ImageCreateFromBMP($pic);

  imagepng($res,'1.png');

  imagejpeg($res,'1.jpeg');

以上就是关于“PHP怎么处理bmp格式的图片”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网PHP编程频道。

--结束END--

本文标题: PHP怎么处理bmp格式的图片

本文链接: https://lsjlt.com/news/93660.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP怎么处理bmp格式图片
    这篇文章主要介绍了PHP怎么处理bmp格式图片,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Array (   [0]&...
    99+
    2024-04-02
  • PHP怎么处理bmp格式的图片
    这篇“PHP怎么处理bmp格式的图片”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP怎...
    99+
    2024-04-02
  • Python怎么将bmp格式的图片批量转成jpg
    这篇文章主要介绍“Python怎么将bmp格式的图片批量转成jpg”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么将bmp格式的图片批量转成jpg”文章能帮助大家解决问题。将bmp格式...
    99+
    2023-07-05
  • Java怎么实现bmp和jpeg图片格式互转
    这篇文章主要介绍“Java怎么实现bmp和jpeg图片格式互转”,在日常操作中,相信很多人在Java怎么实现bmp和jpeg图片格式互转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现bmp和j...
    99+
    2023-07-06
  • Java实现bmp和jpeg图片格式互转
    目录Bmp转JpegJpeg转BmpBmp转Jpeg public static String bmp2Jpeg(String filePath, String outPath) {...
    99+
    2023-05-15
    Java bmp和jpeg互转 Java bmp jpeg
  • php怎么将bmp格式转成png
    这篇文章主要介绍“php怎么将bmp格式转成png”,在日常操作中,相信很多人在php怎么将bmp格式转成png问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php怎么将bmp格式转成png”的疑惑有所帮助!...
    99+
    2023-07-05
  • Android中把bitmap存成BMP格式图片的方法
    最近的项目,做图片的另存为功能,需要把图片存成jpg,png,bmp。对于jpg和png来说相对简单,android提供了bitmap.compress()方法可以马上解决。但...
    99+
    2022-06-06
    方法 图片 bitmap Android
  • C语言读取和存储bmp格式图片
    开发过程中有时候需要解析bmp数据,下面先简单介绍bmp数据组成,后面附上C语言读取和存储bmp格式图片代码。 典型的位图文件格式通常包含下面几个数据块: 1、BMP文件头:保存位图...
    99+
    2024-04-02
  • php图像转换:将bmp格式转成png
    PHP是一种跨平台的脚本语言,可以用于创建动态网页和Web应用程序。在Web应用程序开发中,我们经常需要对图像进行转换和处理。在本文中,我们将介绍如何使用PHP将BMP格式的图像转换为PNG格式的图像。一、BMP格式和PNG格式的介绍BMP...
    99+
    2023-05-14
    php
  • Java如何实现bmp和jpeg图片格式互转
    这篇“Java如何实现bmp和jpeg图片格式互转”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何实现bmp和jp...
    99+
    2023-07-06
  • C语言实现BMP格式图片转化为灰度
    本文实例为大家分享了C语言将BMP格式图片转化为灰度的具体代码,供大家参考,具体内容如下 代码如下: #include<stdio.h> #include<ma...
    99+
    2024-04-02
  • php怎么实现图片格式转jpg
    图片格式转JPG:使用PHP图片是我们网站和应用程序中的基本元素之一。但是,有时候我们需要将图片转换为其他格式。其中,将图片转换为JPG格式是最常见的需求之一。在这篇文章中,我们将学习如何使用PHP语言将图片转换为JPG格式。为什么要将图片...
    99+
    2023-05-14
  • php 怎么把网页转换成图片格式
    php 怎么把网页转换成图片格式?PHP将整个网页html转换为图片并保存【含滚屏】安装chrome-php/chromecomposer require chrome-php/chromechromium安装(自行百度)Chromium是...
    99+
    2021-12-23
    php
  • win7图片格式怎么更改
    这篇文章主要讲解了“win7图片格式怎么更改”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win7图片格式怎么更改”吧!win7图片格式更改教程首先打开“画图”工具点击左上角“文件”或者图示...
    99+
    2023-07-01
  • Linux命令行处理图片方式(图片格式转换、缩放、旋转等)
    目录linux命令行处理图片1. 转换图像格式2. 缩放图像3. 旋转图像Linux命令行批处理图片,批量去除截图的无用部分总结Linux命令行处理图片 Centos OS 中默认安装了 ImageMagick,Imag...
    99+
    2023-06-17
    Linux命令行处理图片 Linux图片格式转换 Linux图片缩放 Linux图片旋转
  • 浅析怎么将php页面转为图片格式
    最近,越来越多的网站需要将PHP页面转换成图片格式。这种需求是因为,有些客户可能需要保存页面内容而无法复制它,或者他们希望分享给其他人。这个问题的解决方案是相对简单的,因为可以使用PHP的GD扩展来生成图片版本的网页。GD扩展是PHP中的一...
    99+
    2023-05-14
    php
  • 怎么识别一张图片的格式
    本篇内容介绍了“怎么识别一张图片的格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在有些时候,我们拿到了...
    99+
    2024-04-02
  • PHP图片处理库Grafika怎么使用
    本篇内容介绍了“PHP图片处理库Grafika怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Grafika是一个PHP图像处理库,是...
    99+
    2023-06-17
  • php中怎么让图片没有缓存文件格式
    PHP是一种广泛使用的服务器端脚本语言,您可以为Web应用程序编写PHP代码并将其运行在服务器上。在PHP中,有时会遇到一些图片缓存相关的问题,比如说在浏览器中打开某个网站时,它的图片无法更新或者变化很慢。这通常是由于浏览器或者服务器缓存图...
    99+
    2023-05-14
  • golang怎么处理图片
    随着互联网的快速发展,图片处理已经成为Web开发中不可避免的一环,Golang也不例外。Golang在图片处理方面已经拥有了非常丰富的工具,比如标准库中的image包、第三方库中的goimage、imagick等等。本文将详细介绍Golan...
    99+
    2023-05-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作