Beiträge: 124
Themen: 36
Registriert seit: 30.09.2012
Hi,
ich würde gerne alle Avatarbilder der selben Größe und Format haben. D.h. der User muss ein Bild mit einer Mindestgröße hochladen und das wird dann auf ein Format von 250x400 Pixel zugeschnitten. Hab gehört das ist mit PHP mögich? Könnt ihr mir sagen ob das stimmt und wie das geht, insbesondere welches Dokument ich bearbeiten muss? Google hat mir leider nicht geholfen.
lg
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Hilft Dir evtl.
das hier?
Beiträge: 124
Themen: 36
Registriert seit: 30.09.2012
27.02.2014, 22:24
(Dieser Beitrag wurde zuletzt bearbeitet: 27.02.2014, 22:27 von me.lina.)
nicht wirklich, das streckt und staucht ja nur.
ich hab folgendes gefunden, aber muss zugeben, dass das für mich fast schon hieroglyphen sind, da ich mit php kaum erfahrung habe. und insbesondere nicht ganz weiß, wie und wo ich das bei mybb einarbeite:
<?php
$org_img = 'quelle.jpg';
$dst_img = 'ziel.jpg';
$crop = 20;
$xy_org = getimagesize($org_img);
$x_new = $xy_org[0] - (2 * $crop);
$y_new = $xy_org[1] - (2 * $crop);
$tmp_img = imagecreatetruecolor($x_new, $y_new);
$src_img = imagecreatefromjpeg($org_img);
imagecopy($tmp_img, $src_img, 0, 0, $crop, $crop, $x_new, $y_new);
imagejpeg($tmp_img, $dst_img, 80);
imagedestroy($tmp_img);
?>
Beiträge: 8.516
Themen: 59
Registriert seit: 20.04.2010
MyBB-Version: 1.8*
Mit freundlichen Grüßen
MrBrechreiz
Beiträge: 124
Themen: 36
Registriert seit: 30.09.2012
auch nicht so recht so wie es aussieht. aber so langsam fummel ich mich in php rein. hat mich zwar wieder viel mehr zeit (und schlaf) gekostet als ich eigtl habe, aber ich hab den obigen code für meine Bedürfnisse umgeschrieben. Das Bild wird erst auf eine höhe von 450 pixel verkleinert, dann auf eine Breite von 250 pixel zentriert zugeschnitten. Anschließend werden ein neuer pfad und die neuen maße in der datenbank gespeichert. wahrscheinlich gehts schöner, aber es tut was es soll. alte bilder werden beim upload neuer gelöscht.
übrigens musste ich die functions_upload.php bearbeiten, als Antwort zu meiner gestellten Frage.
hier noch der code:
Code:
// Avatarformat anpassen
$org_img = $avatarpath."/".$filename;
$dst_img = $avatarpath."/cut/".$filename;
$size = @getimagesize($avatarpath."/".$filename);
$src_img = imagecreatefromjpeg($org_img);
$v=$size[0]/$size[1];
$b_n=$v*450;
$tmp1_img = imagecreatetruecolor($b_n,450);
imagecopyresampled($tmp1_img, $src_img, 0, 0, 0, 0, $b_n, 450, $size[0], $size[1]);
imagejpeg($tmp1_img, $avatarpath."/small/".$filename);
imagedestroy($src_img);
$x_new = 250;
$y_new = 450;
$u=($b_n - 250)/2;
$tmp2_img = imagecreatetruecolor($x_new, $y_new);
$src2_img = imagecreatefromjpeg($avatarpath."/small/".$filename);
imagecopy($tmp2_img, $src2_img, 0, 0, $u, 0, $x_new, $y_new);
imagejpeg($tmp2_img, $dst_img, 80);
imagedestroy($tmp2_img);
// Everything is okay so lets delete old avatars for this user
remove_avatars($uid, $filename);
remove_avatars($uid, "/small/".$filename);
remove_avatars($uid, "/cut/".$filename);
$ret = array(
"avatar" => "./uploads/avatars/cut/".$filename,
"width" => intval(250),
"height" => intval(450)
);