kostenloser Webspace werbefrei: lima-city


PHP -> Größen berechnung von einem Bild

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    Hi Leutz,

    Folgendes Problem, ich habe einen Rahmen, den ich auf hoch geladene Bilder setzen will, allerdings sollten die Bilder sich den Maßen des Rahmens anpassen ohne zu verzerren:

    Das ist der Rahmen mit Bild (so wie es aussehen sollte): http://www.clubnature.de/images/news-pics/44_1256617515.jpg
    Das ist der Rahmen: http://www.clubnature.de/images/news-pics/news_border.png

    Der Code:
    $type=exif_imagetype($uploaddir_pu.$newsid.'.news');
    if($type==IMAGETYPE_GIF){
    $imgsrc_pu=imagecreatefromgif($uploaddir_pu.$newsid.'.news');
    }elseif($type==IMAGETYPE_PNG){
    $imgsrc_pu=imagecreatefrompng($uploaddir_pu.$newsid.'.news');
    }elseif($type==IMAGETYPE_JPEG){
    $imgsrc_pu=imagecreatefromjpeg($uploaddir_pu.$newsid.'.news');
    }elseif($type==IMAGETYPE_WBMP){
    $imgsrc_pu=imagecreatefromwbmp($uploaddir_pu.$newsid.'.news');
    }
    $width_pu=552;
    $height_pu=150;
    $size_pu=GetImageSize($uploaddir_pu.$newsid.'.news');
    $pic_width_pu=$size_pu[0];
    $pic_height_pu=$size_pu[1];
    if($pic_width_pu>$pic_height_pu){
    $new_height_pu=$pic_height_pu/$pic_width_pu*$width_pu;
    $new_width_pu="552";
    }else{
    $new_width_pu=$pic_width_pu/$pic_height_pu*$height_pu;
    $new_height_pu="150";
    }
    $img_pu=imagecreatetruecolor($width_pu,$height_pu);
    imagecopyresized($img_pu, $imgsrc_pu, 0, 0, 0, 0, $new_width_pu, $new_height_pu, $new_width_pu, $new_height_pu);
    $border_pu=imagecreatefrompng($uploaddir_pu.'news_border.png');
    imagecopy($img_pu, $border_pu, 0, 0, 0, 0, $width_pu, $height_pu);
    $color_pu=ImageColorAllocate($img_pu, 5, 233, 11);
    $ttf_pu=$uploaddir_pu."font.ttf";
    $ttfsize_pu=10;
    $t_x_pu=28;
    $t_y_pu=23;
    imagettftext($img_pu, $ttfsize_pu, 0, $t_x_pu, $t_y_pu, $color_pu, $ttf_pu, $headline_pu);
    imagepng($img_pu,$uploaddir_pu.$newsid.'.news');


    Das ist der Pfad + Dateiname zum Bild: $uploaddir_pu.$newsid.'.news'
    Der Rahmen hat 552*150 Pixel

    Könnt ihr mir helfen?
    Ich hoffe es...


    Gruß Chris

    Beitrag zuletzt geändert: 29.10.2009 22:00:33 von ghostrider
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ohne jetzt irgendwie auf den Quelltext oder Sonstiges geachtet zu haben:
    Der Link zu dem "Border-Bild" ist defekt.
  4. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    oh sorry das sollte news_border heißen ;-) Habe ich oben korrigiert ;-)

    Hat jemand vielleicht eine Hilfestellung für mich?

    Gruß
    Chris
  5. wird nicht so einfach gehen... denn wenn do ein Bild Proportional Strecken/Stauchen willst geht das immer nur in 2 Richtungen, ohne das dass Bild verzerrt wird
  6. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    Geschieht das nicht durch folgende Zeile?
    $new_width_pu=$pic_width_pu/$pic_height_pu*$height_pu;
    $new_height_pu="150";




    Gruß
    Chris

    Beitrag zuletzt geändert: 29.10.2009 22:45:38 von ghostrider
  7. ghostrider schrieb:
    Geschieht das nicht durch folgende Zeile?
    $new_width_pu=$pic_width_pu/$pic_height_pu*$height_pu;
    $new_height_pu="150";

    Gruß
    Chris


    Ja und nein. Die Höhe wird damit fest vorgegeben, aber die breite wird berechnet... und ich glaub, da hat er das Problem
  8. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    naja naja er guckt ja halt damit es nicht zu sehr geschrümpelt wird welche Seite die größere ist:

    if($pic_width_pu>$pic_height_pu){
    $new_height_pu=$pic_height_pu/$pic_width_pu*$width_pu;
    $new_width_pu="552";
    }else{
    $new_width_pu=$pic_width_pu/$pic_height_pu*$height_pu;
    $new_height_pu="150";
    }


    Gruß
    Chris
  9. ghostrider schrieb:
    naja naja er guckt ja halt damit es nicht zu sehr geschrümpelt wird welche Seite die größere ist:

    Gruß
    Chris


    Fast gut ;)

    Wenn man ein Bild in einen Rahmen pressen will ohne es zu verzerren darf man nicht die Seiten direkt vergleichen, sondern muss deren Verhältnis zum Rahmen betrachten.

    Beispiel:

    b_breite (Bildbreite), b_höhe (Bildhöhe), r_breite(Rahmenbreite) r_höhe (Rahmenhöhe)

    if ( b_breite / r_breite > b_höhe / r_höhe ) dann:
    anpassung = b_breite / r_breite
    sonst:
    anpassung = b_höhe / r_höhe
    b_breite = b_breite / anpassung
    b_höhe = b_höhe / anpassung

    Selbstredend passt dies auch ein zu kleines Bild in einen größeren Rahmen ein.

    Beispiel:

    Rahmen 100 breit, 200 Hoch
    Bild 200x200
    dann ist 200/100 > 200/200, die Wert der Anpassung also 2, so dass das Bild auf 100x100 in den Rahmen eingepasst wird

    Das dann passend in php umzusezen sollte ja kein Them sein ;)

  10. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    ja allerdings scheint dabei der Hintergrund durch ich habe mal so ein Ausschneide-Script programmiert allerdings bin ich kein JS profi

    http://www.lima-city.de/thread/fehler-java-scripte-werte-ausgeben-in-einem-link

    Gruß Chris und danke für die vielen posts
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!