php gd imagesetpixel,像素与像素和图像内部模型不是1对1的关系

发布于 2024-09-08 09:26:32 字数 730 浏览 3 评论 0原文

<?
    $img_w = 800;
    $img_h = 600;
    $img = imagecreate($img_w, $img_h);
    $color = imagecolorallocate($img, 230, 230, 230);
    $imgname = "gd_img.png";


    for($n=0; $n < $img_w; $n++)
    {
        plot($n , $img_h/2, imagecolorallocate($img, 200, 0, 0));
        plot($n+4 , $img_h/2 + 10, imagecolorallocate($img, 0, 200, 0));
        plot($n*2 , $img_h/2 + 20, imagecolorallocate($img, 0, 0, 200));
    }
    imagepng($img, $imgname, $color);
    imagedestroy($img);


    function plot($x, $y, $color=0)
    {

        imagesetpixel($GLOBALS['img'], $x, $y, $color);
    }

?>

尝试一下,你会发现应该有一条 800 像素宽的实线。至少在我看来没有。 FireFox WebDeveloper 插件(杂项->显示标尺下的标尺工具)显示顶线,宽度约为 83 像素。

<?
    $img_w = 800;
    $img_h = 600;
    $img = imagecreate($img_w, $img_h);
    $color = imagecolorallocate($img, 230, 230, 230);
    $imgname = "gd_img.png";


    for($n=0; $n < $img_w; $n++)
    {
        plot($n , $img_h/2, imagecolorallocate($img, 200, 0, 0));
        plot($n+4 , $img_h/2 + 10, imagecolorallocate($img, 0, 200, 0));
        plot($n*2 , $img_h/2 + 20, imagecolorallocate($img, 0, 0, 200));
    }
    imagepng($img, $imgname, $color);
    imagedestroy($img);


    function plot($x, $y, $color=0)
    {

        imagesetpixel($GLOBALS['img'], $x, $y, $color);
    }

?>

Try it, youll see that there should be a solid line 800 pixels wide. There is not, at least on my end. The FireFox WebDeveloper addon (the ruler tool under misc->display ruler) shows the top line at about 83 pixels wide.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

歌入人心 2024-09-15 09:26:32

根据插入图像的 HTML 代码,浏览器可以调整图像大小以适合页面元素。

Depending on your HTML code to insert the image, your browser could resize the image to fit the page elements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文