2016-05-21 5 views
0

現在、Pligg CMSベースのWebサイトと、画像処理用にPHPのGDライブラリを使用しているユーザーからの投稿にサムネイルを添付するデフォルトのイメージアップロードモジュール。結果のサムネイルの画質は低下し、ウェブ検索の結果、imagecopyresizedの機能をimagecopyresampledに置き換える必要があることがわかりました。イメージアップロードモジュールで "imagecopyresized"関数を "imagecopyresampled"に置き換えます。

主な問題は、私はWeb開発の新人です。どこから始めたらいいのか分かりません。私は(したがって、おそらく間違っている)は、画像処理を担当し、編集することが必要だと思いコードのチャンクは以下の通りです:

私が見たもの、イメージが最初にimagecreatruecolor機能を介して処理されるから
// create a new temporary image 
$tmp_img = imagecreatetruecolor($new_width, $new_height); 

// copy and resize old image into new image 
while (file_exists("$thumb_dir/$name$i.jpg")) $i++; 
$name = "$name$i.jpg"; 

imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

if (!imagejpeg($tmp_img, "$thumb_dir/$name",$settings['quality'])) 
    $error .= "Can't create thumbnail $thumb_dir/$name"; 
else 
    $db->query("INSERT INTO ".table_prefix."files 
      SET file_size='$size', 
       file_orig_id='$orig_id', 
       file_user_id={$current_user->user_id}, 
       file_link_id=$link_id, 
       file_ispicture=1, 
       file_comment_id='".$db->escape($_POST['comment'])."', 
       file_real_size='".filesize("$thumb_dir/$name")."', 
       file_name='".$db->escape($name)."'"); 
} 
return $error; 

新しいtmp_imgがその後imagecopyresized機能によって処理されます。

私は経験がないので、品質を低下させることなくXYサイズの画像のサイズを変更するための正しいパスであるかどうかはわかりません。 imagecreatetruecolorimagecopyresizedの両方をimagecopyresampledに置き換える必要がありますか?

答えて

0

imagecopyresizedimagecopyresampledあなたは、単に次の行に関数名を変更することができるように、同一のパラメータ要件があります。

imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

他のすべてが同じ滞在する必要があります。

コードにはSQL Injectionの脆弱性があります。読んでから、prepared statementsを使い始める。

関連する問題