php - 在不使用标题的情况下使用 PHP 调整图像大小

标签 php html css image magento

我有一个连接到我的 Magento 站点的新闻源。我将提要显示为带有图像的边栏上的列表。现在,当您右键单击并打开它时,我希望提要的图像为缩略图大小。现在,它是 600x400,但我希望它在 95x60 左右。

我知道如何调整 magento 图像的大小,但图像来自不同的非 magento 网站。因此,经过一些研究,我为此所做的是:

foreach($channel as $item) {
    preg_match('/<*img[^>]*src *=["\']?([^"\']*)/i', $item->content, $matches);
    foreach($i = 0; $i <= count($item->category); $i++) {
        if($i < 2) {
            $file = $matches[1];
            list($width, $height) = getimagesize($file);
            $image = imagecreatefromjpeg($file);
            $new_image = imagecreatetruecolor(60,95);
            imagecopyresampled($new_image, $image, 0, 0, 0, 0, 60, 95, $width, $height);
            $image = $new_image;
            echo "<img src='data:image/jpeg;base64,".base64_encode(imagejpeg($image))."' />";
        }
    }
}

我想在调整大小后立即显示图像,因此 data:image/jpeg;base64 部分但奇怪的是这对我不起作用。为什么是这样?如何在不使用标题且不保存图像的情况下调整图像大小。我已经被这个问题困扰了一天多了。请指教。

我知道我可以在 html 中使用 with 和 height 但这与我想要实现的不同。我需要它永久调整大小,这样如果您尝试从列表中下载图像,它仍然是缩略图大小 (95x60) 而不是正常大小 (600x400)。基本上(希望这是清楚的),如果有人试图下载或打开图像,我需要将缩略图的实际大小设置为 95x60。

最佳答案

改变这个:

$image = $new_image;
echo "<img src='data:image/jpeg;base64,".base64_encode(imagejpeg($image))."' />";

对此:

ob_start();
imagejpeg($new_image);
$image = ob_get_contents(); 
ob_end_clean();
echo "<img src='data:image/jpeg;base64,".base64_encode($image)."' />";

你应该完成 :)

关于php - 在不使用标题的情况下使用 PHP 调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624731/

相关文章:

php - Mysql 无限页面滚动功能不起作用

html - 当包裹在 <a> 标签中时,Div 会丢失所有样式

css - 漂浮困惑

html - CSS - div 上的全对 Angular 线透明切 Angular

php - Laravel 4 - 镜像数据库?

php - 影响关闭函数中的退出代码

php - Golang 用字符串中的数组元素替换数组元素

javascript - 忽略 div 内的标签,直到被点击

javascript - 为什么链接需要在手机上双击才能进入链接?

javascript - 员工输入表单的 CSS block