【php使用GD缩小图片,使用透明格式就失真】教程文章相关的互联网学习教程文章

PHP实现生成透明背景的PNG缩略图函数分享

之前在WEB开发笔记写过一个PHP生成缩略图的函数,虽然那个函数能够生成缩略图,但是有一定的缺陷,在生成PNG缩略图的时候,背景是黑色,今天又写了一个函数来弥补一下。代码很简单,就是imagealphablending($thumb,false);与imagesavealpha($thumb,true);很重要.主要就是把PNG的alpha值保存,不要丢失而已。 函数如下: <?PHP /**$sourePic:原图路径* $smallFileName:小图名称* $width:小图宽* $heigh:小图高* 转载注明 www.chhua.c...

php缩小png图片不损失透明色的解决方法

主要是利用gd库的两个方法: 代码如下:imagecolorallocatealpha //分配颜色 + alpha imagesavealpha //设置在保存 png 图像时保存完整的 alpha 通道信息 代码示例:代码如下://获取源图gd图像标识符$srcImg = imagecreatefrompng(./src.png);$srcWidth = imagesx($srcImg);$srcHeight = imagesy($srcImg); //创建新图$newWidth = round($srcWidth / 2);$newHeight = round($srcHeight / 2);$newImg = imagecreatetruecolor($newWid...

php加水印的代码(支持半透明透明打水印,支持png透明背景)

代码如下://原始图像 $dst = "/upload/20120914/20120914040740-0.jpg"; //注意图片路径要正确 //得到原始图片信息 $dst_info = getimagesize($dst); switch ($dst_info[2]) { case 1: $dst_im =imagecreatefromgif($dst);break; case 2: $dst_im =imagecreatefromjpeg($dst);break; case 3: $dst_im =imagecreatefrompng($dst);break; ...

PHP 透明水印生成代码

代码如下:<?php /* * Created on 2010-10-27 * BY QQ542900563 * Copyrights Reserved 2000-2020 * 本例演示图片水印的生成办法 */ //分别载入两张图片 $im=imagecreatefromjpeg("liu.jpg"); $img2=imagecreatefrompng("m.png"); //取得各自的长宽,计算位置 $im_WH=getimagesize("liu.jpg"); $im_W=$im_WH[0]; $im_H=$im_WH[1]; $img2_WH=getimagesize("m.png"); $img2_W=$img2_WH[0]; $img2_H=$img2_WH[1]; //定义存放的位置 $Ne...

php上传图片并给图片打上透明水印的代码_javascript技巧

代码如下:$im = imagecreatefromjpeg($_file["upload"]["tmp_name"]); //你要打水例子的图片 $watermark = imagecreatefrompng("Smiley.png"); //水印图的路径 $im_x = imagesx($im); $im_y = imagesy($im); $w_x = imagesx($watermark); $w_y = imagesy($watermark); imagecopy($im,$watermark ,$im_x-$w_x,$im_y-$w_y,0,0,$w_x,$w_y); imagejpeg($im); //可加上路径以保存有水印的图 //可以利用type判断下图片类型 //switch($_fi...

php上传图片并给图片打上透明水印的代码

代码如下:$im = imagecreatefromjpeg($_file["upload"]["tmp_name"]); //你要打水例子的图片 $watermark = imagecreatefrompng("Smiley.png"); //水印图的路径 $im_x = imagesx($im); $im_y = imagesy($im); $w_x = imagesx($watermark); $w_y = imagesy($watermark); imagecopy($im,$watermark ,$im_x-$w_x,$im_y-$w_y,0,0,$w_x,$w_y); imagejpeg($im); //可加上路径以保存有水印的图 //可以利用type判断下图片类型 //switch($_fi...

thinkphp5.1 图片处理类think-image的png 缩略,裁剪和添加水印透明度丢失的问题【代码】【图】

官方的图片处理类处理png的时候,透明度会丢失 下面是解决办法 要修改的文件: vendor/topthink/think-image/src/Image.php 缩略 要修改的方法 public function thumb($width, $height, $type = self::THUMB_SCALING)按如下修改 // 调整默认颜色 $color = imagecolorallocate($img, 255, 255, 255); // makalo 修改 缩略 $color = imagecolorallocatealpha($img, 0, 0, 0,127);裁剪 要修改的方法 public function crop($w, $h, $x ...

php 把图片变成圆形,边框透明, 头像改成圆形【代码】【图】

比如头像是方形的 我要一个圆形的 边框透明的(我这个是截图的.png 实际是透明边框) 代码如下function circular_img($imgurl,$dest_path){//第一个参数为网络图片 或者改一下为本地图片// $src = imagecreatefromstring(file_get_contents(http://xiaohe520.club/Public/Home/default/images/qr.png)); //获取网络资源文件//本地图片改一下参数// $ext=pathinfo($img);// $src = null;// switch ($ext[extension]) {// ...

php-如何选择一种颜色以使图像透明?【代码】

第一个问题,请保持柔和;-) 我编写了一个图像类,该类使简单的事情(矩形,文本)更加容易,基本上是一堆用于PHP图像函数的包装器方法.我现在想做的是允许用户定义一个选择,并使以下图像操作仅影响所选区域.我想我可以通过将图像复制到imgTwo并从中删除所选区域来进行此操作,像往常一样在原始图像上执行以下图像操作,然后在调用$img-> deselect()时,将imgTwo复制回原件,然后销毁副本. >这是最好的方法吗?显然,在选定区域内定义取消选定的...

php-仅在外部使白色透明【代码】

我正在使用imagick和php来修改上传的图像.我想删除图像周围的白色以使其具有透明背景.使用这个:$val = 65535/15; $val = intval($val/1);//divide by 1 means accept full fuzz at the moment $image->paintTransparentImage("rgb(255,255,255)", 0.0, intval(1*$val); 但是,如果我上传某人牙齿洁白的照片,这会使他们的牙齿消失!那么,我是否错过了可以防止这种情况发生的事情,还是应该放弃这个想法?解决方法:多亏了我提出的解决...

在PHP中更改png的非透明部分的颜色【代码】

我想使用php用任何颜色或图像填充png非透明部分. 以下是基本图片 以下是目标图片 我已使用以下php代码填充png的非透明部分.$im = imagecreatefrompng(dirname(__FILE__) . '/images/cat_1.png'); $red = imagecolorallocate($im, 255, 0, 0); imagefill($im, 0, 0, $red); header('Content-type: image/png'); imagepng($im); imagedestroy($im);但这给了我以下输出. 请帮助我完成任务. 提前致谢.解决方法:保存此版本的基本映像: ...

PHP-imagecreatefrompng()png的透明部分为黑色【代码】

我正在使用PHP创建海报,我想在海报上添加数字. 我使用以下代码添加它们:$src1 = imagecreatefrompng("m2.png"); $widthsrc=0; $heightsrc=0; list($widthsrc, $heightsrc, $typesrc, $attrsrc) = getimagesize("m2.png");$background = imagecolorallocate($src1, 0, 0, 0); imagecolortransparent($src1, $background); imagealphablending($src1, false); imagesavealpha($src1, true);imagecopyresampled($my_img,$src1,$line2...

PHP GD-透明PNG黑色背景【代码】

我正在使用PHP和GD裁剪并输出带有以下代码的图像.它工作正常,但是当我将透明PNG传递给它时,会生成黑色背景.我该如何阻止呢?//setup switch ($source_type) {case IMAGETYPE_JPEG: $source = imagecreatefromjpeg($img_path); break;case IMAGETYPE_PNG: $source = imagecreatefrompng($img_path); break; }// setup cropped destination $cropped = imagecreatetruecolor($cropped_width, $cropped_height);// create...

PHP GD如何圆形裁剪3个方形图像并合并为1个图像保持透明度【代码】

我有2个源图像,我想: >对每个图像进行圆形裁剪,使圆的外部透明>将所有图像合并/复制回目标透明图像. 我试过many examples,但似乎无法保持最终图像的透明度. 我正在努力实现这样的目标: 这是我得到的输出的一个例子: 这是我的circle_crop函数:function create_circle( $img_path ) {// Attribution: by NerdsOfTech// Step 1 - Start with image as layer 1 (canvas).if (! $img1 = $this->imageCreateFromAny( $img_path )) {r...

在PHP中使用GD,如何在PNG和GIF文件上创建透明的PNG水印? (JPG文件工作正常)【代码】

我有一个图像(让我们称之为原始图像),我想在其上为另一个图像添加水印(让我们称之为徽标).徽标是透明的PNG,而原始图像可以是png,jpg或gif.我有以下代码:function watermarkImage($originalFileContents, $originalWidth, $originalHeight) {$logoImage = imagecreatefrompng('logo.png');imagealphablending($logoImage, true);$logoWidth = imagesx($logoImage); $logoHeight = imagesy($logoImage);$originalImage = imagecre...