我正在尝试压缩来自我的数据库的所有图像,从数据库调用的每个图像都由变量$ oldImage表示,然后压缩它并替换同一文件夹中具有相同名称的图像(如果我放入相同的文件,则当前有效)每个$ source_img和$ compress_img中的image_name.jpg。这是我当前的代码:
<?
include "database.php";
$raw_results = mysqli_query($con, "SELECT * FROM products") or
die(mysqli_error($con));
if(mysqli_num_rows($raw_results) > 0){
while($results = mysqli_fetch_array($raw_results)){
?>
<?php
function compress($source, $destination, $quality) {
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source);
imagejpeg($image, $destination, $quality);
return $destination;
}
$oldImage = $results['img'];
$source_img = "../img/products/$oldImage";
$destination_img = "../img/products/$oldImage";
$d = compress($source_img, $destination_img, 90);
?>
<?
}
}else{
echo "No results";
}
?>
$ oldImage变量正确获取第一个图像的名称,但由于此错误而停止: 致命错误:无法在/ home / www / **中重新声明compress()(之前在/home/www/********.co.uk/*****/compress.php:19中声明)第19行的****** / ***** / compress.php
答案 0 :(得分:0)
您应该尝试https://piio.co,因此您不需要手动压缩图片,考虑到不同的浏览器格式和移动设备,这会有很多缺点。它会根据原始图像自动执行您需要做的所有事情。
集成非常简单,您只需将<img src="image.jpg" />
更改为<img data-piio="image.jpg />
并在HTML中包含JS库。您不需要运行cron-job,编写现在正在执行的代码或任何调整大小和压缩图像的内容,Piio会自动为您执行此操作。
图书馆还会根据用户设备自动调整每个屏幕尺寸的图像尺寸,因此您不必自己为同一图像生成多种格式。