gpt4 book ai didi

PHP Swatch 下载,只生成 2 种颜色?

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:48 25 4
gpt4 key购买 nike

我一直致力于使用 PHP 将色板保存为图像,我在这方面取得了领先,到目前为止,它保存了第一种颜色、最后一种颜色和黑色——但将最后一种颜色迭代了三个 block 。

<?php

$colours = $_GET['c'];
$swatches = explode("|", $colours);


// Create image
$im = imagecreatetruecolor(120, 30);


foreach ($swatches as $key => $rgb_set)
{
if ($rgb_set=="") break;
list($r, $g, $b) = explode(",", $rgb_set);

$x_pos = (24 * $key);

$swatch = imagecolorallocate($im, $r, $g, $b);
imagefilledrectangle($im, $x_pos, 0, 24, 30, $swatch);
}


// Set the content type header
header('Content-Type: image/png');

// Save the image
imagepng($im);
imagedestroy($im);

有人知道我做错了什么或如何解决这个问题以便它从调色板下载所有 5 个色板吗?

最佳答案

由于您的 imagefilledrectangle 中的硬编码 24 值,问题似乎发生了(至少部分)函数调用。

而不是这个(注意24):

imagefilledrectangle($im, $x_pos, 0, 24, 30, $swatch);

这个:

imagefilledrectangle($im, $x_pos, 0, $x_pos+24, 30, $swatch);

因此 imagefilledrectangle$x2 值会继续随着原始代码中的 $x1 值移动。

完整代码示例

<?php
$colours = $_GET['c'];
$swatches = explode("|", $colours);

// Create image
$im = imagecreatetruecolor(120, 30);

foreach ($swatches as $key => $rgb_set)
{
if ($rgb_set == "") break;
list($r, $g, $b) = explode(",", $rgb_set);

$x_pos = (24 * $key);

$swatch = imagecolorallocate($im, $r, $g, $b);
imagefilledrectangle($im, $x_pos, 0, $x_pos+24, 30, $swatch);
}

// Set the content type header
header('Content-Type: image/png');

// Save the image
imagepng($im);
imagedestroy($im);
?>

注意:这已使用以下 URL 查询字符串进行了测试:?c=255,255,0|255,155,25|13,103,100|54,123,53|255,0,0

关于PHP Swatch 下载,只生成 2 种颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22843565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com