【问题标题】:dynamic image resize using php使用php动态调整图像大小
【发布时间】:2010-09-03 01:03:46
【问题描述】:

我有一个图像,我将使用它作为背景图像,并将从数据库中提取一些我想在此图像中显示的其他图像。因此,如果我只拉一张图像,我希望背景图像的底部在第一张图像之后关闭,如果有多个图像,那么我希望在显示这些图像后关闭它。不使用单独图像的问题是图像的边框具有设计格式,我无法单独显示它们。

看看这个image。左右边框的设计格式比只裁剪和使用要复杂得多。如果有任何动态图像调整大小的东西有什么建议吗?

【问题讨论】:

    标签: php image


    【解决方案1】:

    是的,有。查看imageXXXX 函数;您特别感兴趣的是imagecreateimagecreatetruecolorimagecreatefrompngimagecopyresampledimagecopyresizedimagepng(假设您正在处理 PNG 图像 - jpeg 有类似的加载/保存功能、gif 和其他一些格式)。

    【讨论】:

      【解决方案2】:

      您应该尝试将GD extension 用于PHP,尤其是查看imagecopyresized()。这使您可以非常轻松地进行一些基本的图像转换和操作。

      一个基本示例,它采用两个 GET 参数,调整 myImage.jpg 图像的大小并将其输出为 PNG 图像:

      <?php
      // width and height
      $w = $_GET['w'];
      $h = $_GET['h'];
      // load image
      $image = imagecreatefromjpeg('myImage.jpg');
      // create a new image resource for storing the resized image
      $resized = imagecreatetruecolor($w, $h);
      // copy the image
      imagecopyresized($resized, $image, 0, 0, 0, 0, $w, $h, imagesx($image), imagesy($image));
      // output the image as PNG
      header('Content-type: image/png');
      imagepng($resized);
      

      【讨论】:

      • 我已经在 php.net 中尝试了上述功能的示例,但我得到的只是一个黑色(或指定的任何颜色)重新调整大小的图像,而不是重新调整大小的原始图像。即使对于您的示例,我也正在调整黑色图像的大小。我做错了什么?
      • 好的问题是我必须先安装GD并修改php.ini对吗?
      • @Scorpion King:不,如果功能正常工作(即它们已定义),则表示已安装 GD。但是您确定 'myImage.jpg' 或其他任何实际指向现有 JPEG 文件的内容吗?
      【解决方案3】:

      你试过PHPThumb吗?我经常使用这个类,它非常干净和轻量级。我用过here

      【讨论】:

        猜你喜欢
        • 2011-02-18
        • 1970-01-01
        • 1970-01-01
        • 2011-03-16
        • 2013-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多