Ich arbeite derzeit an Pligg CMS-basierten Website und seine Standard-Image Upload-Modul, die Thumbnails an Beiträge von Benutzer bereitgestellten Links hängt PHP-GD-Bibliothek für Bildverarbeitung . Die Thumbnails haben eine reduzierte Qualität und nach ein wenig Websuche fand ich, dass ich die imagecopyresized
Funktion durch imagecopyresampled
ersetzen sollte.Ersetzen der "imagecopyresized" -Funktion durch "imagecopyresampled" im Bild-Upload-Modul
Das Hauptproblem ist, ich bin ein Anfänger in Web-Entwicklung, und ich weiß nicht, wo ich anfangen soll. Das Stück Code Ich denke (also vielleicht falsch) für die Bildverarbeitung zuständig ist und bearbeitet werden muss, ist die folgende:
// 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;
Von dem, was ich sehe, wird das Bild zuerst durch die Funktion imagecreatruecolor
verarbeitet in eine neue tmp_img
, die dann durch die imagecopyresized
Funktion verarbeitet wird.
Da ich keine Erfahrung habe, kann ich nicht sagen, ob dies der richtige Pfad für ein Bild der XY-Größe ist, um in der Größe geändert zu werden, ohne seine Qualität zu reduzieren. Sollte ich sowohl imagecreatetruecolor
als auch imagecopyresized
durch imagecopyresampled
ersetzen?