快速簡介。我們目前必須根據我們網站上的產品圖片製作小型,中型和大型圖像。不是一個關於PHP的知識我認爲我仍然會嘗試自動化這個噩夢。PHP上傳大圖像和調整像Photoshop一樣的比例
圖像上傳,我們和拇指的尺寸低於
800 width x 1400 width LARGE
300 width x 525 width THUMB
與我的PHP腳本的問題是,它只是擴展到比例調整大小。我希望它能像Photoshop一樣縮小比例,只需點擊shift和圖像縮放。我正嘗試使用imagecopyresized
,但運氣不佳。
<?php
// PHP UPLOAD SCRIPT
// VALIDATION OF FORM
if($_FILES['user_image']['type'] == "image/jpeg" && $_FILES['user_image']['size'] < 3000000)
{
// VARS
$target_folder = 'images/';
$upload_image = $target_folder.basename($_FILES['user_image']['name']);
// UPLOAD FUNCTION
if(move_uploaded_file($_FILES['user_image']['tmp_name'], $upload_image))
{
// VARS FOR FILE NAMES
$thumbnail = $target_folder."medium_x.jpg";
$actual = $target_folder."large_x.jpg";
// THUMBNAIL SIZE
list($width, $height) = getimagesize($upload_image);
$newwidth = "300";
$newheight = "525";
// VARS FOR CALL BACK
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($upload_image);
// RESIZE WITH PROPORTION LIKE PHOTOSHOP HOLDING SHIFT
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// MAKE NEW FILES
imagejpeg($thumb, $thumbnail, 100);
// FILE RENAMES
rename($upload_image, $actual);
{
// SUCCESS MESSAGES
?>
<p>
Image Successfully uploaded!<br />
Actual image: <?=$actual;?><br />
Thumbnail image: <?=$thumbnail;?><br />
<h1>Large</h1>
<img src="<?=$actual;?>"/><br /><br />
<h1>Medium</h1>
<img src="<?=$thumbnail;?>"/><br /><br />
</p>
<?
}
// FAILED MESSAGES
}
else
{
echo 'Upload failed.';
}
}
else
{
// NOT A JPEG
echo 'Not a JPEG';
}
// END OF SCRIPT
?>
如何在沒有拉伸圖像的情況下正確調整大小?可能嗎?
我怎麼能融入我的腳本中的命令行功能。你是說用上面鏈接中的引用替換'imagecopyresized'命令嗎? – TheBlackBenzKid 2013-02-19 12:38:08
我將編輯我的答案以向您展示實施 – LuckySpoon 2013-02-19 22:59:37
無需執行命令行命令即可使用該命令。 Imagick已經包裝在一個不錯的php庫 – pdizz 2013-02-19 23:42:48