当宽度大于高度时,自动旋转图像在PHP中

问题描述:

我问了过去,但我不确定我们理解&我还没有解决方案。 我需要优雅的解决方案; 我有照片600x800 &我需要在我的网站上显示它旋转90度,所以结果将是,当我打印php页面时,所有照片将自动垂直。当宽度大于高度时,自动旋转图像在PHP中

例如 我有很多照片,两种:800x600 & 600x800。 我需要在我的PHP页面上显示所有800x600原始和所有600x800旋转90度。

我需要一些非常简单的解决方案,我完全不在意。可以旋转宽度大于高度的图像的一些功能。

非常感谢。

+0

所以,你必须每个图像的2; 800x600和600x800? 您当前的输出是什么?你可以发布你的PHP逻辑? – Fyntasia

+0

您可以使用GD或ImageMagick在服务器上旋转图像,也可以在浏览器中使用CSS变换旋转图像。 –

使用PHP函数getimagesize()你可以得到你的形象widthheight

list($width, $height) = getimagesize($imageUrl); 

然后,在您的模板中:

<?php if($width > $height): ?> 
     //put css here as you want 
    <?php else: ?> 
     //put css here as you want 
    <?php endif; ?> 

使用getimagesize用于检测图像的宽度,如果宽度为800像素加内嵌CSS这样

style="-moz-transform: rotate(90deg); -webkit-transform: rotate(90deg); -o-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);" 

getimagesize()函数将给你的宽度和高度,并通过使用imagerotate()您可以旋转该图像到任何需要的角度。

试试这个: -

<?php 
// File and rotation 
$filename = 'php.jpg'; 
$degrees = 180; 

// Content type 
header('Content-type: image/jpeg'); 

// Load 
$source = imagecreatefromjpeg($filename); 

// Rotate 
$rotate = imagerotate($source, $degrees, 0); 

// Output 
imagejpeg($rotate); 

// Free the memory 
imagedestroy($source); 
imagedestroy($rotate); 
?> 
+0

这是不正确的形式:--- echo(''); ---? :/没有工作 – WanderRook