【发布时间】: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'