单独检索和设置像素

时间:2016-02-18 17:20:18

标签: php

我试图重新创建一个用JavaScript制作的脚本;它通过改变每个像素位置来弯曲图像。我目前正在尝试将其移植到PHP,除非在检索像素和设置它们时,它没有正确显示(我目前不更改像素位置)。以下是我的尝试:

In [13]: parser.parse_args(['b'])
Out[13]: Namespace(cmd='b')
In [14]: parser.parse_args(['c'])
Out[14]: Namespace(cmd='c')
In [15]: parser.parse_args(['a','1'])
Out[15]: Namespace(a='1', cmd='a')

在这里你可以看到(出于测试目的)我正在使用Google的徽标,并且我试图逐个像素地重新绘制它。以下是结果。由于某种原因,它只生成图像的一小部分..任何想法?Result of code

修改 这是解决方案。由于使用<?php header ('Content-Type: image/png'); $url = "https://www.google.co.uk/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"; list($width, $height, $type, $attr) = getimagesize($url); $original = imagecreatefrompng($url); //Google's logo $image = imagecreate($width, $height); // our new image //loop through all pixels.. for ($x = 0;$x<$width;$x++){ for ($y = 0;$y<$height;$y++){ $rgb = imagecolorat($original, $x,$y); //get colour data from $x $y coordinates $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; imagesetpixel($image,$x,$y,imagecolorallocate($image,$r,$g,$b)); //set pixel data on our new image at the same location with the same data } } //retain a PNG's transparency imagecolortransparent($image, imagecolorallocatealpha($image, 0, 0, 0, 127)); imagealphablending($image, false); imagesavealpha($image, true); imagepng($image); imagedestroy($image); imagedestroy($original); ?> 不支持透明度,我首先使用白色矩形填充图像(如果有透明度解决方案,请创建答案)。

imagecreatetruecolor()

0 个答案:

没有答案