【问题标题】:Writing text on uploaded image with WideImage使用 WideImage 在上传的图像上写入文本
【发布时间】:2016-03-30 12:28:00
【问题描述】:

我正在努力在一个基于 PHP 的项目上实现 WideImage 插件。

现在,我们可以上传图片(上传到基于会话 ID 的临时文件夹),但图片上没有文字。我在他们的网站上基于this example 工作(减去阴影效果),但它似乎没有做任何事情。当我转到目标文件夹并查看上传的图像时,没有任何变化。

这里是sn-p的代码;有什么突出的错误吗?我最近添加了setFont 行,但这似乎没有什么不同。

      require("upload.php");
      $userImagePath = $userFolderPath . $_FILES["fileToUpload"]["name"];

      $newImagePath = null;


      $image = WideImage::loadFromFile($userImagePath);


      $canvas = $image->getCanvas();
      $canvas->setFont('resources/assets/NOVABOLD.otf');


      $canvas->useFont('resources/assets/NOVABOLD.otf', 20, $image->allocateColor(255, 255, 255));          
      $canvas->writeText('center', 'top', 'I am ');

当我使用echo $userImagePath 时,它确实给了我一个工作文件路径。

我也尝试过使用 fileFromUpload 选项,但即使我从 HTML 表单中提供了文件字段的名称,它也不会将其识别为上传。

【问题讨论】:

  • 您正在保存文件吗?查看您的链接最后一行应该是 $image->saveToFile('image-with-text.jpg'); 以保存带有文本的新图像
  • @MichaelWalton 谢谢,这是一个简单的遗漏。但是,我的分支似乎根本不接受图像并上传它:(此处错误输出:pastebin.com/7dFk5YH8
  • 具体来说,它似乎是在创建随机生成的文件夹,但在上传时不再在里面留下任何图像。当 WideImage 功能被移除时,它可以工作。

标签: php gd wideimage


【解决方案1】:
  $font = '/resources/assets/NOVABOLD.otf';
  $image = WideImage::load('name');

  $canvas = $image->getCanvas();

  $canvas->useFont($font, 20, $image->allocateColor(255, 255, 255));          
  $canvas->writeText('center', 'top', 'I am ');

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 2019-01-17
    • 2012-05-27
    • 1970-01-01
    • 2010-09-26
    • 2016-09-29
    • 1970-01-01
    • 2011-10-13
    • 2020-12-01
    相关资源
    最近更新 更多