PHP: 当我保存 JPG 图片时,文件扩展名总是丢失
PHP: When I save JPG image the file extension is always missing
我写了一个小脚本来创建目录中所有 JPG 图像的预览并将它们保存到另一个目录中。但是文件扩展名 .jpg
总是丢失。我真的不明白为什么。
foreach( glob(dirname(__FILE__)."/../../img/plakate/full/*.jpg") as $img ){
// key
$key = basename($img,'.jpg').PHP_EOL;
// save preview
$thumb = new Imagick($img);
$thumb->setImageCompression(Imagick::COMPRESSION_JPEG);
$thumb->setImageCompressionQuality(10);
$thumb->resizeImage(50,0,Imagick::FILTER_LANCZOS,1);
$thumb->writeImage("lib/img/plakate/preview/{$key}.jpg");
$thumb->destroy();
}
我也试过这个结果是一样的:
foreach( glob(dirname(__FILE__)."/../../img/plakate/full/*.jpg") as $img ){
// key
$key = basename($img,'.jpg').PHP_EOL;
// save preview
$thumb = new Imagick($img);
$thumb->setImageCompression(Imagick::COMPRESSION_JPEG);
$thumb->setImageCompressionQuality(10);
$thumb->resizeImage(50,0,Imagick::FILTER_LANCZOS,1);
$thumb->setImageFormat('jpeg');
file_put_contents ("lib/img/plakate/preview/{$key}.jpg", $thumb);
$thumb->destroy();
}
正如我所见,一切正常——只是缺少文件扩展名。 :(
您可以简单地使用它来代替 basename
、
$explodedPath = explode(DIRECTORY_SEPARATOR, $img);
$fileName = $explodedPath[count($explodedPath) - 1];
或pathinfo
$pathParts = pathinfo($img);
$fileName = "{$pathParts['filename]}{$pathParts['extension']}"
您的代码 $key = basename($img,'.jpg').PHP_EOL;
末尾有一个 PHP_EOL
,表示该行在此结束,"discarding" 组装您的文件名时它后面的任何内容。
将 $key = basename($img,'.jpg').PHP_EOL;
更改为 $key = basename($img,'.jpg');
以附加您的文件扩展名。
我写了一个小脚本来创建目录中所有 JPG 图像的预览并将它们保存到另一个目录中。但是文件扩展名 .jpg
总是丢失。我真的不明白为什么。
foreach( glob(dirname(__FILE__)."/../../img/plakate/full/*.jpg") as $img ){
// key
$key = basename($img,'.jpg').PHP_EOL;
// save preview
$thumb = new Imagick($img);
$thumb->setImageCompression(Imagick::COMPRESSION_JPEG);
$thumb->setImageCompressionQuality(10);
$thumb->resizeImage(50,0,Imagick::FILTER_LANCZOS,1);
$thumb->writeImage("lib/img/plakate/preview/{$key}.jpg");
$thumb->destroy();
}
我也试过这个结果是一样的:
foreach( glob(dirname(__FILE__)."/../../img/plakate/full/*.jpg") as $img ){
// key
$key = basename($img,'.jpg').PHP_EOL;
// save preview
$thumb = new Imagick($img);
$thumb->setImageCompression(Imagick::COMPRESSION_JPEG);
$thumb->setImageCompressionQuality(10);
$thumb->resizeImage(50,0,Imagick::FILTER_LANCZOS,1);
$thumb->setImageFormat('jpeg');
file_put_contents ("lib/img/plakate/preview/{$key}.jpg", $thumb);
$thumb->destroy();
}
正如我所见,一切正常——只是缺少文件扩展名。 :(
您可以简单地使用它来代替 basename
、
$explodedPath = explode(DIRECTORY_SEPARATOR, $img);
$fileName = $explodedPath[count($explodedPath) - 1];
或pathinfo
$pathParts = pathinfo($img);
$fileName = "{$pathParts['filename]}{$pathParts['extension']}"
您的代码 $key = basename($img,'.jpg').PHP_EOL;
末尾有一个 PHP_EOL
,表示该行在此结束,"discarding" 组装您的文件名时它后面的任何内容。
将 $key = basename($img,'.jpg').PHP_EOL;
更改为 $key = basename($img,'.jpg');
以附加您的文件扩展名。