加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 将图像转换为预定义的16种颜色

发布时间:2020-12-13 22:48:37 所属栏目:PHP教程 来源:网络整理
导读:给定一个图像文件,将它转换为旧学校16种颜色的最佳方法是什么?即白色,橙色,品红色,浅蓝色,黄色,石灰色,粉红色,灰色,浅灰色,青色,紫色,蓝色,棕色,绿色,红色和黑色. 我制作了一个1×16像素的小图像,其中包含了我可以用作源调色板的所有16种颜色(对吗?)但是我
给定一个图像文件,将它转换为旧学校16种颜色的最佳方法是什么?即白色,橙色,品红色,浅蓝色,黄色,石灰色,粉红色,灰色,浅灰色,青色,紫色,蓝色,棕色,绿色,红色和黑色.

我制作了一个1×16像素的小图像,其中包含了我可以用作源调色板的所有16种颜色(对吗?)但是我在使用它时遇到了麻烦.看起来像imagepalettecopy()是我想要的(采用16像素数据图像的调色板并将其复制到一个新的图像)但我提出的代码不起作用:

<?php

$palette = imagecreatefrompng( __DIR__ . '/palette.png' );

$source = imagecreatefromjpeg( __DIR__ . '/testimage.jpg' );

$source_w = imagesx( $source );
$source_h = imagesy( $source );

$image = imagecreate( $source_w,$source_h );

imagepalettecopy( $palette,$image );

imagecopy( $image,$source,$source_w,$source_h );

header('Content-Type: image/png');
imagepng( $image );

它似乎只是将它转换为16种颜色的选择或其他东西(我不太确定).

我错过了什么或做错了什么?

编辑:我的imagepalettecopy()调用是向后的,但修复它也没有帮助.见下面的评论.

解决方法

改变
imagepalettecopy($palette,$image);

imagepalettecopy($image,$palette);
工作?

编辑:

我尝试了以下调色板作为gif:

我认为这些颜色与你的颜色不同.
(我从图片中挑选了果岭……)

这是我试过的代码(这里没有什么区别):

<?php

$palette = imagecreatefromgif('palette-gif-03.gif');

$source = imagecreatefromjpeg('test-image-01.jpg');

$source_w = imagesx($source);
$source_h = imagesy($source);

$image = imagecreate($source_w,$source_h);

imagepalettecopy($image,$palette);

imagecopy($image,$source_h);

header('Content-Type: image/png');
imagepng($image);

imagedestroy($imgage);
imagedestroy($palette);
imagedestroy($source);
?>

这是我的结果:

如果我要删除图片,请告诉我?!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读