【问题标题】:Imagick loads images on local server, but not godaddy server. PHPImagick 在本地服务器上加载图像,而不是 Godaddy 服务器。 PHP
【发布时间】:2015-10-30 18:19:00
【问题描述】:

我有一个上传到服务器的图像,然后我获取图像信息并使用 imagick 调整大小,这在我的本地服务器 (xammp) 上效果很好,但是当我上传到网站到 godaddy 时,只有某些图像加载。这是一段sn-p代码;

$image = frameEngine($_FILES['myFile']['tmp_name'];
$tempHeight = $image->getHeight();
$tempWidth  = $image->getWidth();
$inches     = $image->getInches();

在它读取的类frameEngine中;

Class frameEngine {

private $image;
private $height;
private $width;
private $dpi;

function __construct($file) {
   $this->image = new Imagick(realpath($file));
   $this->width = $this->image->getImageWidth();
   $this->height = $this->image->getImageHeight();
   $this->dpi = $this->image->getImageResolution();

}

public function getHeight() {
   return $this->height;
}

public function getWidth() {
   return $this->width;
}

public function getInches() {
   $dpi = $this->dpi;
   $iw = round(($this->width / $dpi['x']*100)/100,2);
   $ih = round(($this->height / $dpi['y']*100)/100,2);
   return array('w' => $iw, 'h' => $ih);    
}

}

我在 getInches() 中得到一个除以零的错误,显然是因为 Imagick 返回 0 作为图像高度和宽度,因此我相信 imagick 在图像上失败了。该图像显然很好,因为它可以在我的本地服务器上运行。

【问题讨论】:

  • 您的托管方案是什么?
  • 共享主机很糟糕,因为您被他们的软件堆栈所束缚。您可能需要考虑移动便宜的 vps(linode、aws 等)。
  • Linux Hosting w/Cpanel,Imagick 模块与我本地服务器上的相同,我将其缩小到 $this->image->getImageResolution() 返回 0,0 用于 DPI
  • “某些图像”和失败图像之间有什么区别?规模?格式?
  • 是的,图像尺寸略有不同,像素稍小一点的图像效果很好,格式相同 'jpg'

标签: php image imagick


【解决方案1】:

在你得出 Imagick 不工作的结论之前有两件事

  1. 制作一个测试脚本并使用phpinfo()。从您的浏览器中点击该页面并查找该页面中提到的 imagick。如果没有提到这一点,那么繁荣!您需要为此联系您的托管服务提供商

  2. 其次,请确保已启用文件上传并使用老派var_dump正确上传文件

希望这对小伙子有帮助!

【讨论】:

  • phpinfo() 显示 imagick,两者在本地和 godaddy 服务器上看起来相同。当我 var_dump 文件在那里时,就像我在上次回复中所说的那样,高度和宽度正在返回正确的结果,但 getImageResolution 正在返回 0。
猜你喜欢
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
  • 2021-02-09
  • 2018-12-09
  • 1970-01-01
相关资源
最近更新 更多