iT邦幫忙

0

圖片旋轉,越變越小

<?php
    $path = "files/images/04.jpg";
    $new_path = str_replace("../","",$path);

    $source = imagecreatefromjpeg($path);   //新建圖檔
    /*
    $org_info = getimagesize($path);   //取得圖檔資訊,此為陣列[0]=width,[1]=height,[3]=width & height

    $destination = imagecreatetruecolor($org_info[0],$org_info[1]);    //新建一個新尺寸圖檔
    
    imagecopyresampled($destination,$source,0,0,0,0,$org_info[0],$org_info[1],$org_info[0],$org_info[1]);//複製新建圖檔
    */
    //旋轉圖片
    
    $deg = 360 - (90*0);

    $rotate_img = imagerotate($source, $deg, 0);
    
    imagejpeg($rotate_img,$path,100);                //暫存圖檔 品質為100,0~100
    $i = $i+1;
    $photo = 'room_photo'.$i;
?>

想請問為何我同一張圖片,經過$rotate_img = imagerotate($source, $deg, 0);後存檔,圖片會越變越小

ccutmis iT邦高手 8 級 ‧ 2019-11-06 09:46:43 檢舉
<?php
$i=0;
$path = "test.jpg";
$new_path = str_replace("","",$path);
$source = imagecreatefromjpeg($path);
$deg = 360 - (90*2);
$path2='test1.jpg';
$rotate_img = imagerotate($source, $deg, 0);
imagejpeg($rotate_img,$path2,100);
?>
測試過沒有你說的問題,你的圖片會越變越小跟這行
$rotate_img = imagerotate($source, $deg, 0);
無關,另外...
$deg = 360 -(90*0); 不就等於 360嗎 你的圖片根本沒旋轉,
改成
$deg = 360 -(90*2); 會變成旋轉180度,
設path 跟 path1是故意讓它另存圖片 這樣去比較有沒有差異一目了然
我測試後的結果是 path 跟 path1 存的jpg檔除了有翻轉180度之外寬高是沒變的。
豬豬人 iT邦新手 5 級 ‧ 2019-11-06 13:34:06 檢舉
@ccutmis 選轉角度設定為0 就會出現我說的這個問題
ccutmis iT邦高手 8 級 ‧ 2019-11-06 22:43:26 檢舉
@cheer0101 並不會喔
你用我貼的那段php碼把裡面的 $deg = 360 -(90*0); 這樣寫
存成 test.php 在php檔同一層放一個 test.jpg 執行看看,
我剛又試了一遍 新圖test1.jpg 寬高跟原圖test.jpg一模一樣,
問題大概出在其它地方...

尚未有邦友回答

立即登入回答