PHP处理bmp格式图片的步骤

白天qa提出项目上传图片有问题,具体为:上传成功,预览失败。我去了之后,又上传了几张其他的图片可以上传,然后仔细问了下他上传的是哪张图片,看了后使用getimagesize函数打印了下。本文主要和大家介绍了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也行,下面贴出代码。

<?phpfunction 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'] = 0) {    $X = 0;    while ($X > 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;}$pic = '2.bmp';$res = ImageCreateFromBMP($pic);imagepng($res, '1.png');imagejpeg($res, '1.jpeg');

相关推荐:

bmp格式图片 php 将bmp图片转为jpg等其他任意格式的图片

立即学习“PHP免费学习笔记(深入)”;

[GD]生成bmp格式的图片(imagebmp)

[GD]生成bmp格式的图片_PHP

以上就是PHP处理bmp格式图片的步骤的详细内容,更多请关注php中文网其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545798.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
怎样做出在网页中弹出QQ临时对话框
上一篇 2025年12月21日 17:27:16
下一篇 2025年12月21日 17:27:32

相关推荐

  • 如何为VSCode配置一个高效的PHP开发环境?

    搭建高效PHP开发环境需配置VSCode扩展与工具链:①安装PHP Intelephense实现智能补全;②配置Xdebug实现断点调试;③集成PHP CS Fixer或Prettier实现保存时自动格式化;④利用GitLens和集成终端提升协作与操作效率,一次性配置可长期提升编码质量与开发速度。 …

    2026年9月21日
    000
  • 猎豹浏览器最新官方网址链接 猎豹浏览器平台入口直达官网首页

    猎豹浏览器最新官方网址是http://m.liebao.cn/,该网站提供安卓和iPhone版浏览器下载,具备双引擎加速、视频缓存、安全防护及个性化设置等功能。 猎豹浏览器最新官方网址链接在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来猎豹浏览器平台入口直达官网首页,感兴趣的网友一起随小编…

    2026年9月21日
    000
  • mysql如何使用事务保证操作原子性

    答案:MySQL中事务通过START TRANSACTION开启,需使用InnoDB引擎并关闭自动提交,执行SQL后根据结果COMMIT或ROLLBACK,结合异常处理确保原子性。 在MySQL中,事务是保证数据库操作原子性的核心机制。通过事务,可以确保一组SQL操作要么全部成功执行,要么全部不执行…

    2026年9月21日
    500
  • mysql如何配置ssl安全连接

    MySQL支持SSL时返回YES,通过生成证书并配置my.cnf中的ssl-ca、ssl-cert、ssl-key启用SSL,创建REQUIRE SSL用户确保加密连接,客户端连接需指定证书参数,STATUS或Ssl_cipher验证加密状态。 MySQL 配置 SSL 安全连接可以提升数据库通信的…

    2026年9月21日
    200
  • 访问DeepSeek官方网站 deepseek在线版免费登录

    答案:DeepSeek在线版免费登录入口位于官网https://chat.deepseek.com/sign_in,用户可通过手机号验证码或微信授权登录,新用户免注册,登录后自动创建账户并同步多端数据,支持网页和APP使用。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 De…

    2026年9月21日
    100
  • PHP播放HLS视频流的方法_PHP播放HLS视频流方法

    答案:PHP通过权限控制和文件代理实现HLS流安全分发,前端使用HTML5视频标签和hls.js播放。具体描述:HLS将视频切为.ts片段并用.m3u8索引,PHP后端可校验用户权限、防止盗链,动态输出.m3u8或.ts内容;前端通过video标签加载stream.php?id=1,结合hls.js…

    2026年9月20日
    000
  • 如何安装mysql GUI管理工具

    首选安装MySQL Workbench,Windows下载MSI安装,macOS拖拽DMG到应用,Linux用apt命令安装,也可选phpMyAdmin、DBeaver等工具。 安装 MySQL 图形化管理工具(GUI)可以让你更方便地操作数据库,比如建表、查询、备份等。最常用且官方推荐的工具是 M…

    2026年9月20日
    100
  • 腾讯元宝AI便捷体验入口 腾讯元宝网页版在线入口

    腾讯元宝AI便捷体验入口为https://yuanbao.tencent.com,支持网页版、手机APP及微信小程序访问,提供智能问答、文档解析、内容生成等多功能服务。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 腾讯元宝AI便捷体验入口…

    2026年9月20日
    000
  • Gemini2.5网页版访问入口_Gemini2.5官方网站下载链接

    Gemini 2.5网页版访问入口为 https://gemini.google.com/app,登录谷歌账号后可使用主交互界面、模型切换、文件上传、历史记录及移动端同步等功能。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ Gemini2…

    2026年9月20日
    000
  • PHP框架依赖管理工具选哪个_PHP框架依赖管理工具对比

    Composer是PHP依赖管理的首选工具,通过composer.json定义依赖、自动安装包并处理版本冲突,支持主流框架、拥有丰富生态和自动加载机制,尽管存在学习曲线和潜在依赖冲突,但其优势远超其他方案。 PHP框架依赖管理,其实就是选一个靠谱的工具来帮你自动搞定项目里各种代码包的安装、更新和卸载…

    2026年9月20日
    000
  • B站官方网站视频_B站视频网站主页官网

    B站官方网站视频观看入口地址是https://www.bilibili.com,平台集成了动画、影视、科技等多领域内容分区,支持自定义画质调节与实时弹幕互动,配备个性化推荐算法,优化网页端与客户端操作体验,提供跨设备观看记录同步及技术兼容性解决方案,确保稳定流畅的视频播放。 B站官方网站视频观看入口…

    2026年9月20日
    000
  • Google最新版官方网址 Google平台主页直达官方链接

    Google最新版官方网址是www.google.com,提供精准搜索、多语言支持及跨设备同步等功能,集成图片、新闻等资源,并持续优化算法与安全机制。 Google最新版官方网址在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来Google平台主页直达官方链接,感兴趣的网友一起随小编来瞧瞧吧…

    2026年9月20日
    000
  • Grok官方主页访问_Grok官方网站网页版链接

    Grok官方网站网页版链接是https://grok.com,用户无需X账户即可通过浏览器访问,支持多语言和多设备使用,并可实时检索信息、进行多轮对话及内容生成。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ Grok官方网站网页版链接在哪…

    2026年9月20日
    100
  • CodeIgniter 4 API:捕获并返回错误到HTTP响应

    本文旨在帮助开发者在使用CodeIgniter 4 构建API时,能够有效地捕获后端发生的错误,并将这些错误信息以HTTP响应的形式返回给客户端,从而避免每次都检查日志文件的繁琐过程,提升开发效率。 在CodeIgniter 4中,默认情况下,错误会被记录到日志文件中,但不会直接显示在HTTP响应中…

    2026年9月20日
    000
  • Linux输出文本echo命令应用

    echo命令不仅能输出文本,还可结合变量、转义序列和重定向实现动态内容生成、文件创建与追加、配置修改、管道处理及脚本调试,其行为在Bash、Zsh和Dash等shell中因内置实现不同而存在差异,尤其在转义序列处理上需注意使用-e选项或改用printf以保证一致性。 echo 命令在 Linux 中…

    2026年9月20日
    000
  • 豆包Ai官方网页版访问_豆包Ai网页版使用官网

    豆包Ai官方网页版访问入口为https://www.doubao.com/chat/,支持智能聊天、图像生成、文档互动等功能,用户可通过网页、客户端或移动端使用,建议登录账号并分步提问以提升交互效率。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型…

    2026年9月20日
    000
  • mysql如何配置连接超时

    MySQL连接超时由wait_timeout、interactive_timeout和connect_timeout参数控制,分别设置空闲连接存活时间、交互式连接超时时间和连接响应超时;通过配置文件或动态命令调整参数值,并结合应用层连接池管理、及时关闭连接及异常处理机制协同优化,避免资源浪费。 My…

    2026年9月20日
    800
  • 海棠文学城官方网址是多少呀 海棠文学城官网链接快速进入

    海棠文学城官方网址是https://www.haitbook.com,用户可直接访问,若无法打开可尝试备用站如https://www.htlvbooks.com;注册需填写邮箱、设置密码并验证激活,登录后可搜索书籍、收藏至书架并参与活动。 海棠文学城官方网址是多少呀?这是不少网友都关注的,接下来由P…

    2026年9月20日
    100
  • Bing搜索官方网址链接入口 Bing搜索在线体验官网主页直达

    Bing搜索官方网址为https://www.bing.com/,提供国际版和中国版入口,界面每日更新高清背景图,布局简洁并支持深色模式,集成图文、视频、新闻等多类型搜索,具备实时热点、语音图像识别功能,内置奖励计划与个性化工具。 Bing搜索官方网址链接入口在哪里?这是不少网友都关注的,接下来由P…

    2026年9月20日
    100
  • 爱应用pc版官网首页地址 爱应用pc版平台直达官方链接首页

    爱应用PC版官网首页地址是https://www.aiyingyong.com,该平台提供丰富软件资源、简洁操作界面和多设备协同支持,涵盖办公工具、游戏、影音播放器等类型,支持Windows XP至Windows 11系统,具备安全检测和批量下载功能。 爱应用PC版官网首页地址在哪里?这是不少网友都…

    2026年9月20日
    000

发表回复

登录后才能评论
关注微信