2017-07-17 10 views
1

固定サイズ(400 * 320) でアップロードしたサムネイルをサムネイルフォルダに保存し、元のイメージのコピーをアップロードフォルダに送信するユーザーがサムネイルをクリックします。元の画像は表示されますが、元の画像がアップロードしたコードの問題は、同じサイズのサムネイルで解決してください。ここでイメージを固定サイズにリサイズし、元のイメージサイズを維持する

コードです:

function ak_img_resize($target, $newcopy, $w, $h, $ext) { 
    list($w_orig, $h_orig) = getimagesize($target); 

    $img = ""; 
    $ext = strtolower($ext); 
    if ($ext == "gif"){ 
     $img = imagecreatefromgif($target); 
    } else if($ext =="png"){ 
     $img = imagecreatefrompng($target); 
    } else { 
     $img = imagecreatefromjpeg($target); 
    } 
    $w = 400; 
    $h = 320; 
    $tci = imagecreatetruecolor($w, $h); 
    // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h) 
    imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig); 
    imagejpeg($tci, $newcopy, 90); 
+0

私は画像をアップロードし、resize_img.phpファイルを使用するコードを送信します。私のためにそれをしてください私はあなたがコードを取ってそれを貼り付ける必要がある開発者ではない –

+0

ありがとう非常に。コードが働いた –

答えて

0

おそらくあなたは、この関数を使用して、元を入れている、とあなたはそれを圧縮しようとか、何でもしているので、多分それはあるが、しかし、あなたは、元が元に滞在したい場合サイズを変更するには、アップロードされたファイルを最初に移動しなければならない場所に移動し、移動されたファイルの成功時にその移動したファイルからサムネイルコピーを作成します。

あなたは品質や何をバックにスケールする、あなたの関数によって、元の画像ファイルを入れたい場合は、これらの調整を行ってみてください。

# Notice the re-organizing of the params--------vv----------vv 
function ak_img_resize($target, $newcopy, $ext, $w = false, $h = false) 
    { 
     list($w_orig, $h_orig) = getimagesize($target); 
     # If you keep the width empty, take original size 
     if(empty($w)) 
      $w = $w_orig; 
     # If you keep the height empty, take original size 
     if(empty($h)) 
      $h = $h_orig; 

     $img = ""; 
     $ext = strtolower($ext); 
     if ($ext == "gif"){ 
      $img = imagecreatefromgif($target); 
     } else if($ext =="png"){ 
      $img = imagecreatefrompng($target); 
     } else { 
      $img = imagecreatefromjpeg($target); 
     } 
     $tci = imagecreatetruecolor($w, $h); 
     // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h) 
     imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig); 
     imagejpeg($tci, $newcopy, 90); 
    } 

使用するには:

#Sized down: 
ak_img_resize($target,$newcopy,$ext,400,320); 

#Original: 
ak_img_resize($target,$newcopy,$ext); 
関連する問題