MyBB.de Forum
Avatar zuschneiden (festes Format & Größe) - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.6.x (https://www.mybb.de/forum/forum-58.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-59.html)
+---- Thema: Avatar zuschneiden (festes Format & Größe) (/thread-29246.html)



Avatar zuschneiden (festes Format & Größe) - me.lina - 27.02.2014

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


RE: Avatar zuschneiden (festes Format & Größe) - Jockl - 27.02.2014

Hilft Dir evtl. das hier?


RE: Avatar zuschneiden (festes Format & Größe) - me.lina - 27.02.2014

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);
?>


RE: Avatar zuschneiden (festes Format & Größe) - MrBrechreiz - 27.02.2014

Hilft dir das eventl. ?
https://www.mybb.de/erweiterungen/16x/plugins-profile/avatargroesse-anpassen/


RE: Avatar zuschneiden (festes Format & Größe) - me.lina - 28.02.2014

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)
    );