问候......我正在按目录动态调整JPG的大小。照片本质上是随机水平或垂直的。我的脚本(包含在下面)按预期工作 - 除了一个特定情况。那种情况是我将照片直接从存储卡传输到最终目录,从中创建拇指。在这种情况下 - 我的垂直照片会生成水平拇指。
如果我处理已处理,调整大小或未调整大小的图像文件夹,则不会发生此问题。垂直照片在相机上,在存储卡上旋转,这可以通过在我的本地驱动器上垂直预览为垂直的事实来证明。但是,如果我通过缩略图脚本运行未触摸的文件,它会顺时针旋转90度垂直!
有没有人聪明有什么想法? :)
此外,我还想在我的界面中放置一个“旋转”按钮,但我无法使用php函数rotateimage()。样本很简单...没有错误,但在浏览器中我得到一英里的符号和文字。之前看过吗?
感谢。
function createThumbs( $pathToImages, $pathToThumbs, $thumbWidth )
{
// open the directory
$dir = opendir( $pathToImages );
// loop through it, looking for any/all JPG files:
while (false !== ($fname = readdir( $dir ))) {
// parse path for the extension
$info = pathinfo($pathToImages . $fname);
// continue only if this is a JPEG image
if ( strtolower($info['extension']) == 'jpg' )
{
echo "Creating thumbnail for {$fname} <br />";
// load image and get image size
$img = imagecreatefromjpeg( "{$pathToImages}{$fname}" );
$width = imagesx( $img );
$height = imagesy( $img );
// calculate thumbnail size
$new_width = $thumbWidth;
$new_height = floor( $height * ( $thumbWidth / $width ) );
// create a new tempopary image
$tmp_img = imagecreatetruecolor( $new_width, $new_height );
// copy and resize old image into new image
//imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
imagecopyresampled( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
// save thumbnail into a file
imagejpeg( $tmp_img, "{$pathToThumbs}{$fname}" );
}
}
// close the directory
closedir( $dir );
}
答案 0 :(得分:0)
您是否有可能将高度传递给函数而不是初始3变量中的宽度?这可能会造成这个问题。我们没有传递这些变量的代码片段,您可能想要提出它。