【问题标题】:Open a GIF image, increase the 'canvas' by 100 pixels打开 GIF 图片,将“画布”增加 100 像素
【发布时间】:2011-07-11 21:21:18
【问题描述】:

嘿,我想用 PHP 的 GD 库打开一个 GIF 图像并将画布的高度增加 100 像素,然后用十六进制颜色 #EEEEEE 填充新空间。

有人知道我会怎么做吗?

【问题讨论】:

    标签: php resize gd gif


    【解决方案1】:
    1. 使用getimagesize获取原始大小
    2. 使用imagecreate 创建具有所需大小的“新”图像
    3. 使用imagecolorallocate#eeeeee 填充新图像(见注释)
    4. 使用imagecopy 将原始图像复制到新图像中

    【讨论】:

      【解决方案2】:

      如果您的问题是“有人知道我会怎么做吗?”那么答案是肯定的。很可能有人知道如何做到这一点。 :)

      否则这应该可以解决问题:

      $image = imagecreatefromgif('file.gif');
      list($imageWidth, $imageHeight) = getimagesize('file.gif');
      $newimage=imagecreatetruecolor($imageWidth, $imageHeight+100);
      $gray=imagecolorallocate($newimage, 0xEE, 0xEE, 0xEE);
      imagefill($newimage,0,0,$gray);
      imagecopy($newimage, $image, 0, 0, 0, 0, imageWidth, $imageHeight);
      imagegif($newimage,'newimage.gif');
      

      【讨论】:

      • 这行得通,但是函数 'getimagesize' 不适用于 GD 图像,它必须是文件的路径。谢谢你。
      • 其实这样不行。似乎拉伸了图像。有什么想法吗?
      • ..这确实有效,但包含另一个错误。 imagecopyresampled() 中的 $imageHeight+100 应该只是 $imageHeight
      • 哎呀抱歉,我没有实际测试就直接在答案字段中输入代码。感谢您发现此错误。
      猜你喜欢
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 2020-08-30
      • 2021-11-18
      • 1970-01-01
      • 2018-02-16
      相关资源
      最近更新 更多