PHP缩小png图片,保留透明色方法

2023-05-16

将图片缩成合适的尺寸,jpg图片缩小比较容易,png图片如果带了透明色,按jpg方式来缩小,会造成透明色丢失。


保存透明色主要利用gd库的两个方法:

imagecolorallocatealpha 分配颜色 + alpha

imagesavealpha 设置在保存png图像时保存完整的 alpha 通道信息


代码如下:

//获取源图gd图像标识符
$srcImg = imagecreatefrompng('./source.png');
$srcWidth = imagesx($srcImg);
$srcHeight = imagesy($srcImg);

//创建新图
$newWidth = round($srcWidth / 2);
$newHeight = round($srcHeight / 2);
$newImg = imagecreatetruecolor($newWidth, $newHeight);
//分配颜色 + alpha,将颜色填充到新图上
$alpha = imagecolorallocatealpha($newImg, 0, 0, 0, 127);
imagefill($newImg, 0, 0, $alpha);

//将源图拷贝到新图上,并设置在保存 PNG 图像时保存完整的 alpha 通道信息
imagecopyresampled($newImg, $srcImg, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight);
imagesavealpha($newImg, true);
imagepng($newImg, './thumb.png');


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP缩小png图片,保留透明色方法 的相关文章

  • R 语言与 php 集成以获取 R 的结果

    我有以下 R 脚本 assign data path data path lt C Users Owner Desktop R work assign valus to the following three percent train p
  • 如何将 PHP 数组中的值插入到 MySQL 表中?

    我正在创建一个注册表单 其中包含姓名 电子邮件和电话号码字段 为了检查用户输入的有效性 我有一个函数validate input 返回一个数组 arr包含用户输入的输入 如果用户输入有效 arr然后传递给一个单独的函数 该函数将值插入arr
  • Laravel 无法连接 Oracle

    我在用着耶吉拉 laravel oci8 https github com yajra laravel oci8用于 Oracle 与 Laravel 的连接 但我无法从客户端 PC 连接到 Oracle 服务器 showing this
  • {PHP} 致命错误:不在对象上下文中时使用 $this (Joomla)

    我真的不了解 php 并且碰壁了 问题是我的网站显示以下错误 Fatal error Using this when not in object context in hermes web07 b2350 pow thefoodie htd
  • 仅为两个控制器分配不同的域

    我使用的是旧的 Yii v1 我只需要为两个控制器分配不同的域 所以我有一堆控制器 HomeController php CategoryController php GuestbookController php ShopControll
  • 为什么 IIS 不执行我的网站根目录 index.php 文件的 PHP 代码?

    IIS实际上是在发送将代码发送到浏览器而不是执行它 但是 仅针对根http domain com index php file 该文件夹中的所有其他 php 文件和子文件夹中的 index php 文件均按预期执行 我怎样才能执行我的根in
  • Google PageSpeed Insights API 无法正常工作 [PHP]

    我是 PHP 的初学者 所以也许有人可以帮助解决这个问题 我的网络应用程序显示 Google PageInsights API 错误 这是代码 我尝试将版本更改为 v2 但仍然不起作用 public function getPageSpee
  • 回退到正则表达式中字符串的开头

    是否可以让正则表达式退回到字符串的开头并再次开始匹配 这就是我问的原因 给定下面的字符串 我想捕获子字符串black red blue and green按照该顺序 无论主题字符串中出现的顺序如何 并且仅当所有子字符串都存在于主题字符串中时
  • strpos 0==false 问题?

    我使用 strpos 来查找一个字符串在另一个字符串中的位置 我首先检查是否在那里找到了该字符串 这是我的台词 if strpos grafik data ss1 lt gt false strpos grafik data ss2 lt
  • XAMPP:作曲家返回错误而不是创建新的 laravel 项目

    使用ubuntu 16 04 LTS 在两个不同版本的地方安装了PHP 在root 7 0和XAMPP 5 6中 composer全局安装 现在我无法从lamp htdocs创建composer项目 xampp运行良好 作曲家已安装并运行良
  • str_ireplace 与 str_replace 一样工作

    我需要用 url 字符串中的小 ascii 字符替换所有本地字符 包括大写字母 str echo str ireplace array array c c d s z str 结果 c c d s z 我期望 c c d s z c c d
  • 适用于真正复杂查询的 ORM 解决方案

    在这样复杂的情况下 人们可以 应该使用任何 ORM 解决方案吗 这可以用以下方法完成吗Propel or Doctrine 目前我正在使用 Propel 所以如果有 Propel 解决方案 我会很高兴 如果我使用 propel 进行直接查询
  • Javascript crc32 函数和 PHP crc32 与 UTF8 不匹配

    我一直在尝试从 PHP 获取 crc32 函数来匹配 javascript 生成的结果 我已经使用了 4 个不同的 javascript crc32 库 1 http www webtoolkit info javascript crc32
  • 从多维数组中删除多个值

    我有一个来自 WordPress 的数组get posts 功能 posts array 15 0 gt object WP Post 285 24 ID gt int 253 post author gt string 1 1 post
  • 无法上传大于 8MB 的文件

    我正在尝试制作一个文件上传脚本 并且我已经为这个问题苦苦挣扎了一段时间 我已阅读并尝试了与此相关的所有答案 但无济于事 这是我在 php 中尝试过的 文件名 file uploads On upload max filesize 100M
  • 如何处理 file_get_contents() 中的 403 错误?

    我在使用时遇到 403 错误file get contents 我想这样处理这个错误 if required function file get contents url detects there is a 403 error do so
  • PHP 指针与引用

    在 PHP 中 使用指针有什么区别 例如 function foo var var 3 a 0 foo a 以及参考 function foo var var 3 a 0 foo a 它们都修改了原始变量的值 但是它们内部的表示方式不同吗
  • Smarty 3 如何与 Zend Framework 2 一起使用?

    我很久以前就使用过 PHP5 目前正在尝试刷新我的知识 并通过 Zend Framework 2 和 Smarty 3 的知识来增强它 以实现一个可能的项目 我目前正在尝试弄清楚如何使用 Smarty 3 作为 Zend Framework
  • WP_Query 相同的请求,不同的语法 - 其中之一不起作用

    我有一个运行良好的 WP Query args array post type gt product meta key gt product subtype meta value gt public compare gt 但当我想搜索多个m
  • 如何创建一个每次调用公共方法时都会调用的方法?

    如何创建一个每次调用公共方法时都会调用的方法 您也可以说这是一个后方法调用挂钩 我当前的代码

随机推荐

  • Sublime Text配置JDK

    操作系统 xff1a Windows 7 SP1 Sublime Text是一款轻量级代码编辑器 虽然收费 xff0c 但可以无限期试用 支持多种语言的代码高亮 xff0c 但一些不能直接编译运行 xff0c 今天我为大家带来Sublime
  • JS小游戏-仙剑翻牌

    游戏介绍 这是一个翻牌配对游戏 xff0c 共十关 1 游戏随机从42张牌中抽取9张进行游戏 xff0c 每组为2张相同的牌 xff0c 共18张牌 2 连续翻到两张相同的为胜利 xff0c 当9组全部翻到则过关 如不是翻到连续两张相同的
  • memcached 常用命令及使用说明

    memcached 查看方法 格式 telnet ip port 例如 telnet localhost 11211 退出命令 xff1a quit 一 存储命令 存储命令格式 xff1a lt command name gt lt key
  • PHPMailer - PHP email transport class

    在服务器安装 sendmail sudo apt get install sendmail 启动 sendmail sudo etc init d sendmail start 修改 php ini mail function SMTP 6
  • PHP 遍历文件夹及文件类及处理类

    FindFile class php 用于遍历目录文件 lt php 遍历文件夹及文件类 Date 2013 03 21 Author fdipzone Ver 1 0 class FindFile public files 61 arra
  • sh autolog backup

    shell sh 每天备份log文件 bin bash 每天备份log文件 log path 61 34 home fdipzone logs 34 log目录 backup path 61 34 home fdipzone logs ba
  • Apache rewrite

    1 开启rewrite sudo a2enmod rewrite 2 停用rewrite sudo a2dismod rewrite 3 服务器环境变量 Apache提供给rewirte模块的环境变量大概分成5个类型 第一部分 HTTP h
  • RewriteCond和13个mod_rewrite应用举例Apache伪静态

    1 xff0e 给子域名加www标记 RewriteCond HTTP HOST a z 43 example com NC RewriteCond HTTP HOST www NC RewriteRule http www xample
  • 正向代理与反向代理的区别

    正向代理的概念 正向代理 也就是传说中的代理 他的工作原理就像一个跳板 简单的说 我是一个用户 我访问不了某网站 但是我能访问一个代理服务器 这个代理服务器呢 他能访问那个我不能访问的网站 于是我先连上代理服务器 告诉他我需要那个无法访问网
  • Apache 搭建虚拟主机

    Apache 搭建虚拟主机方法 DocumentRoot xff1a home fdipzone sites demo fdipzone com ServerName xff1a demo fdipzone com 1 进入apache虚拟
  • sh memcached 进程启动及监控

    memcached 进程启动及监控 1 memcached inc sh 设置路径 xff0c 端口等讯息 bin sh config include HOST 61 hostname SITE 61 34 mysite 34 PORT 6
  • 设置进程的显示名称

    有时候在LINUX下 xff0c fork子进程的时候 xff0c 像nginx里的一样 xff0c 想让子进程的名字可以自定义 参考网上文章之后 xff0c 可以通过修改argv 0 的值来改变子进程的名字 xff0c 但是要注意新标题的
  • 自动登入google play下载app report

    流程 1 登入google play 登入google play需要三步 https play google com apps publish https accounts google com ServiceLogin hl 61 en
  • sh cssupdate 优化

    bin bash 更新css文件内图片的版本 如background url 39 images test jpg 39 更新为 background url 39 images test jpg 20130330121210 39 css
  • php click captcha 验证码类

    需求 xff1a 现在常用的表单验证码大部分都是要用户输入为主 xff0c 但这样对手机用户会不方便 如果手机用户访问 xff0c 可以不用输入 xff0c 而是click某一位置便可确认验证码 xff0c 这样就会方便很多 原理 xff1
  • 快速排序算法

    快速排序 xff1a 代码 xff1a lt php 快速排序算法 1 在数组中找一个元素作为key 一般取数组第一个元素作为key 2 i 61 0 j 61 数组长度 1 3 j 当 arr j lt key arr i 与arr j
  • 利用Apache mod_expires 与 mod_headers 实现文件缓存及mod_deflate压缩输出

    1 使用mod deflate module 压缩输出 启动gzip 开启mod deflate sudo a2enmod deflate sudo etc init d apache2 restart 在httpd conf中添加 lt
  • HTML5 history API 介绍

    HTML5 history API介绍 history是个全局变量 xff0c 即window history 属性和方法如下 xff1a length xff1a 历史堆栈中的记录数 back xff1a 返回上一页 foward xff
  • 冒泡,二分法插入,快速排序算法

    1 冒泡排序算法 过程 xff1a 1 遍历整个数组 xff0c 每两两相邻的元素进行比较 xff0c 如 a i gt a i 43 1 则互换位置 xff0c 每次比较消除一个逆序 2 每一次循环后 xff0c 下次再需要循环的次数减少
  • PHP缩小png图片,保留透明色方法

    将图片缩成合适的尺寸 xff0c jpg图片缩小比较容易 xff0c png图片如果带了透明色 xff0c 按jpg方式来缩小 xff0c 会造成透明色丢失 保存透明色主要利用gd库的两个方法 xff1a imagecolorallocat