在php中,我使用php move_uploaded_file函数将图像上传到数据库。现在当我从数据库中获取图像时,我正在使用此代码来获取图像
$result = mysql_query("SELECT * FROM "._DB_PREFIX_."storeimages WHERE `city_name`='".$_GET['details']."'");
while($row = mysql_fetch_array($result)){
echo '<div class="store-img">';
echo '<img class="store-image" src="storeimages/images/'.$row['store_image'].'" width="100px" height="100px" >';
echo '</div>';
}
这里我很容易得到图像。但是在这里您可以看到我使用了width="100px"
和height="100px"
来表示图片大小。这会扰乱图像宽高比。为了解决这个问题,我搜索了谷歌,我得到imagemagick是一个很好的选择。但我不知道如何使用imagemagick与简单的PHP(我没有使用任何类,方法)和我怎么能在这里使用imagemagick?任何帮助和建议都会非常明显。感谢
答案 0 :(得分:1)
以下是如何保持图像比率
list($origWidth, $origHeight) = @getimagesize("path/to/image");
$origRatio = $origWidth/$origHeight;
$resultWidth = 100;
$resultHeight = 100;
if ( $resultWidth/$resultHeight > $origRatio ) {
$resultWidth = $resultHeight * $origRatio;
} else {
$resultHeight = $resultWidth / $origRatio;
}
答案 1 :(得分:0)
尝试Sencha .io。非常容易和强大
echo '<img
src="http://src.sencha.io/100/http://yourdomain.com/storeimages/images/'.$row['store_image'].'"
alt="My constrained image"
width="100"
height="100"
/>';
答案 2 :(得分:0)
imagemagick是一个可以操作图像的linux实用程序
要使用,您必须在服务器上安装它
只需输入以下命令
即可<?
print_r(exec("which convert"));
?>
如果它返回了某些内容,则表示已安装
现在使用以下命令调整图像大小
<?php
exec("/<linux path of this utility>/convert /<actual path of image>/a.png -resize 200x200 /<path where image to be saved>/a200x200.png")
?>
答案 3 :(得分:0)
安装php imagick
sudo apt-get install imagemagick
sudo apt-get install php5-imagick
调整照片大小时,最好保持宽高比 这张照片。以下代码应该更好地了解如何 计算纵横比
if( $imageWidth > $maxWidth OR $imageHeight > $maxHeight )
{
$widthRatio = 0;
$heightRatio = 0;
if( $imageWidth > 0 )
{
$widthRatio = $maxWidth/$imageWidth;
}
if( $imageHeight > 0 )
{
$heightRatio = $maxHeight/$imageHeight;
}
if( $widthRatio > $heightRatio )
{
$resizeRatio = $heightRatio;
}
else
{
$resizeRatio = $widthRatio;
}
$newWidth = intval( $imageWidth * $resizeRatio );
$newHeight = intval( $imageHeight * $resizeRatio );
}
有关如何使用Imagick的信息,请参阅http://php.net/manual/en/book.imagick.php。您可以参考以下示例代码
$image = new Imagick($pathToImage);
$image->thumbnailImage($newWidth, $newHeight);
$image->writeImage($pathToNewImage);