我限制我的程序只接受16:9比例的图像,基本上是获取图像大小并查看宽度/高度是否为16:9。
是否可以让我的程序拍摄任何图像并将其调整大小/重新调整为16:9而不会使图像看起来很奇怪?
这是我的代码:
global $config;
$tempFile = $_FILES['file']['tmp_name'];
$mimeType = mime_content_type($tempFile);
$fileName = md5(uniqid());
switch($mimeType){
case "image/jpeg":
$filePath = "images/";
$extension = IMAGETYPE_JPEG;
break;
case "image/png":
$filePath = "images/";
$extension = IMAGETYPE_PNG;
break;
case "video/mp4":
$filePath = "videos/";
$extension = ".mp4";
break;
}
$targetFile = $config['GENERAL']['UPLOAD_PATH'].$filePath.$fileName.$extension;
move_uploaded_file($tempFile,$targetFile);
答案 0 :(得分:1)
是否可以让我的程序拍摄任何图像并将其调整大小/重新调整为16:9而不会使图像看起来很奇怪?
是的,确实如此。我建议你使用ImageMagik本机PHP扩展。
您可以通过以下方式实现目标:
Imagick::getSize()
)Imagick::cropImage()
)请注意您的担忧:
...没有让图像看起来很奇怪?
......好吧,这取决于图像和裁剪。 请记住,裁剪任何图像都是一种破坏性操作,因为您“丢弃”部分图像。 如果裁剪对您无效(是的,图像可能看起来很奇怪),请考虑将整个原始图像固定在16:9更大的画布上(然后,左/右或顶部/底部将有空白边距)。也可以使用ImageMagik实现。