PHP -> Größen berechnung von einem Bild
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anpassung
beispiel
bild
code
dateiname
direkt vergleichen
folgende zeile
folgendes problem
hilfestellung
hoch bild
hoch geladene bilder
http
image
kleines bild
pfad
presse
rahmen
setzen
type
werte ausgeben
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ohne jetzt irgendwie auf den Quelltext oder Sonstiges geachtet zu haben:
Der Link zu dem "Border-Bild" ist defekt. -
oh sorry das sollte news_border heißen Habe ich oben korrigiert
Hat jemand vielleicht eine Hilfestellung für mich?
Gruß
Chris -
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
-
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 -
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 -
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 -
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 ;)
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage