我试图在PHP中调整透明背景的png,我在网上找到的代码示例对我不起作用.这是我正在使用的代码,建议将不胜感激!
$this->image = imagecreatefrompng($filename);
imagesavealpha($this->image, true);
$newImage = imagecreatetruecolor($width, $height);
// Make a new transparent image and turn off alpha blending to keep the alpha channel
$background = imagecolorallocatealpha($newImage, 255, 255, 255, 127);
imagecolortransparent($newImage, $background);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);
imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->image = $newImage;
imagepng($this->image,$filename);
Run Code Online (Sandbox Code Playgroud)
更新
"不工作"我的意思是当我调整pngs时,背景颜色会变为黑色.
我使用PHP和GD库制作缩略图,但我的代码将png透明度变成纯黑色,是否有改进我的代码的解决方案?
这是我的php缩略图制造商代码:
function cropImage($nw, $nh, $source, $stype, $dest) {
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
switch($stype) {
case 'gif':
$simg = imagecreatefromgif($source);
break;
case 'jpg':
$simg = imagecreatefromjpeg($source);
break;
case 'png':
$simg = imagecreatefrompng($source);
break;
}
$dimg = imagecreatetruecolor($nw, $nh);
$wm = $w/$nw;
$hm = $h/$nh;
$h_height = $nh/2;
$w_height = $nw/2;
if($w> $h) {
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
} elseif(($w <$h) || ($w == …Run Code Online (Sandbox Code Playgroud) 当我使用base64编码时,PHP在创建图像文件(PNG)时的正确方法是什么?
我一直在玩:
file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);
我需要解码吗?我应该使用gd库吗?
我正在尝试创建一个带有图像的PHP脚本:

http://i.stack.imgur.com/eNvlM.png
然后应用PNG图像:

http://i.stack.imgur.com/iJr2I.png
作为面具.
最终结果需要保持透明度:

http://i.stack.imgur.com/u0l0I.png
如果可能的话我想在GD中这样做,ImageMagick现在不是一个真正的选择.
我该怎么做?
phalacee的帖子(在"PHP/GD中,如何将圆圈从一个图像复制到另一个图像?")似乎沿着正确的线条,但我特别需要使用图像作为蒙版而不是形状.
我正在尝试使用imagefttext.我需要安装GD库和/或freetype.我是这类新手的新手,如何在Linux中安装GD库和freetype?
我需要在ImageMagick或GD库之间进行选择,以执行以下图像处理任务:
如你所见,我不需要任何花哨的东西.我确信这两个工具都可以实现它们,所以如果一个人有比另一个更多的额外功能,我真的不在乎.
我主要关心的是性能和质量.这两种工具中哪一种消耗的资源更少,速度更快,产生更高质量的图像?
PS我需要将它与各自的PHP API一起使用.
我通过Composer(composer require barryvdh/laravel-dompdf)在Laravel Project中新安装了Dompdf .进入命令终端后回复以下错误.
Problem 1
- dompdf/dompdf v0.7.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- barryvdh/laravel-dompdf v0.7.0 requires dompdf/dompdf ^0.7 -> satisfiable by dompdf/dompdf[v0.7.0].
- Installation request for barryvdh/laravel-dompdf ^0.7.0 -> satisfiable by barryvdh/laravel-dompdf[v0.7.0].
To enable extensions, verify that they are enabled in those .ini files:
- /etc/php/5.6/cli/php.ini
- /etc/php/5.6/cli/conf.d/10-opcache.ini
- /etc/php/5.6/cli/conf.d/10-pdo.ini
- /etc/php/5.6/cli/conf.d/15-xml.ini
- /etc/php/5.6/cli/conf.d/20-calendar.ini
- /etc/php/5.6/cli/conf.d/20-ctype.ini
- /etc/php/5.6/cli/conf.d/20-dom.ini
- /etc/php/5.6/cli/conf.d/20-exif.ini
- /etc/php/5.6/cli/conf.d/20-fileinfo.ini
- /etc/php/5.6/cli/conf.d/20-ftp.ini
- /etc/php/5.6/cli/conf.d/20-gettext.ini …Run Code Online (Sandbox Code Playgroud) 如何在Windows 7中安装图像魔术.我按照这些说明操作
在Windows XP上安装IMagick(php 5.2.x)
下载并安装ImageMagick-6.5.8-7 Q16-windows-dll.exe http://www.imagemagick.org/download/binaries/ ImageMagick-6.5.8-7-Q16-windows-dll.exe
从以下网址下载php_imagick_dyn-Q16.dll:http: //valokuva.org/outside-blog-content/ imagick-windows-builds/080709 /
将dll复制到[PHP]/extension dir并将其重命名为php_imagick.dll
您必须编辑php.ini文件并添加新的扩展名
extension=php_imagick.dll
Run Code Online (Sandbox Code Playgroud)保存ini文件并重启apache服务器.
(如有必要,重新启动Windows)
phpinfo() 应该显示启用imagick.
之后我执行一个示例脚本,但它不起作用.它显示了Imagic类缺失错误.
致命错误:在第103行的C:...\imgborder.php中找不到类'Imagick'
请帮我安装Imagick.:-(
我试图复制Dribbble.com检测图像中主要颜色的功能.在下图中,您可以看到Dribbble.com的屏幕截图,其中显示了左侧图像中的8种主要颜色.这是图片中的实际页面http://dribbble.com/shots/528033-Fresh-Easy?list=following
我需要能够在PHP中执行此操作,一旦我获得了我需要的颜色,我将它们保存到数据库中,因此不需要在每个页面加载时运行处理.
在对如何从图像中获取这些颜色的一些研究之后,有些人说你只是逐个像素地检查图像,然后保存最多出现的颜色.其他人说它还有更多,并且获得最常见的颜色不会产生预期的效果.他们说你需要量化图像/颜色(此时我迷失了).
在下面的图像中,下面的Dribble镜头是一个Javascript库,可以执行相同的操作,可以在此处查看该页面http://lokeshdhakar.com/projects/color-thief/
查看该页面的来源,我可以看到有一个名为Javascript的文件quantize.js,结果非常好.所以我希望能够使用PHP和GD/ImageMagick来完成Javascript库的功能

我发现这个函数将使用PHP返回颜色和计数,但结果与上面的Javascript版本和Dribble结果不同
/**
* Returns the colors of the image in an array, ordered in descending order, where the keys are the colors, and the values are the count of the color.
*
* @return array
*/
function Get_Color()
{
if (isset($this->image))
{
$PREVIEW_WIDTH = 150; //WE HAVE TO RESIZE THE IMAGE, BECAUSE WE ONLY NEED THE MOST SIGNIFICANT COLORS.
$PREVIEW_HEIGHT = 150;
$size = GetImageSize($this->image);
$scale=1;
if ($size[0]>0)
$scale = min($PREVIEW_WIDTH/$size[0], …Run Code Online (Sandbox Code Playgroud) 我想从用户上传的图像创建缩略图,因此图像看起来不会被压扁.但是也想要原始图像的副本..所以我希望原始图像将原始图像发送到我的服务器并创建一个拇指版本并将其发送到我的服务器,这样我就可以为每个用户调用它们上传自己的图片.
我的用户表有2个表
`user_pic` longblob NOT NULL,
`user_pic_small` longblob NOT NULL,
Run Code Online (Sandbox Code Playgroud)
我对编码的图像方面并没有崩溃,但这是我到目前为止所拥有的.
Imageupload.php
> <form id="myForm" action="include/media.profileimage.upload.php"
> method="POST" enctype="multipart/form-data" target="ifr1">
> <input type = "file" name = "image_data" class = "input_text" style="width:800px;" >
> <input type = "submit" name = "submit" class = "btn_login" value = "Upload">
> </form>
Run Code Online (Sandbox Code Playgroud)
media.profileimage.upload.php
if(isset($_FILES['image_data'])){
if(is_uploaded_file($_FILES['image_data']['tmp_name'])) {
// prepare the image for insertion
$imgData =addslashes (file_get_contents($_FILES['image_data']['tmp_name']));
// get the image info..
$size = getimagesize($_FILES['image_data']['tmp_name']);
// our sql query
$creator_id = $_SESSION['id'];
$sql = "UPDATE …Run Code Online (Sandbox Code Playgroud) gd ×10
php ×10
imagemagick ×3
image ×2
png ×2
thumbnails ×2
freetype ×1
imagick ×1
laravel ×1
laravel-5.2 ×1
linux ×1
resize ×1
ubuntu ×1