PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

29-09-2006, 14:23
|
carapau
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
|
|
bild verkleinern *gähn*
Hallo!
Ich weiss, dass das Thumbnailerstellen usw schon wirklich oft besprochen wurde hier. Hab die Suchfunktion benutzt - keine Sorge
Kann bisher nur Breite oder Höhe festlegen und den anderen Teil dann darauf anpassen.
War bisher auch ok so, aber jetzt brauche ich eine feste Größe: 20x20px.
Wie kann ich das anstellen? Hab das versucht, aber bei mir gabs immer diese schwarzen Ränder.
Komm leider echt nicht weiter
Danke
carapau
__________________
Lasst euch nicht lumpen, hoch den Humpen!
|

29-09-2006, 14:31
|
ArSeN
Registrierter Benutzer
|
|
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
|
|
Quelltext?
Beispielbilder?
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
|

29-09-2006, 14:44
|
carapau
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
|
|
sorry, hast ja recht. hab den kram leider wieder gelöscht und auf 'n script gehoft
Kann das aber noch mal schnell zusammenbasteln. Poste ich dann gleich.
__________________
Lasst euch nicht lumpen, hoch den Humpen!
|

29-09-2006, 14:48
|
carapau
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
|
|
hatte doch noch was da..
hier wird nur die höhe bestimmt (100px):
PHP-Code:
$id; // wird aus db geholt
$originalName = "orig_".$id.".".$endung2;
$thumbName = "thumb_".$id.".".$endung2;
$originalBild = $dir."/".$bild;
# Bildgroeße
$filesize = filesize($originalBild);
$filesize = $filesize / 1024;
$filesize = round($filesize, 2);
$file = getimagesize($originalBild);
$breite = $file[0];
$hoehe = $file[1];
$neueHoehe = 100;
$neueBreite = intval($breite * $neueHoehe / $hoehe);
if($file[2] == 1)
{
# GIF
$altesBild = ImageCreateFromGIF($originalBild);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild, $altesBild, 0, 0, 0, 0, $neueBreite, $neueHoehe, $breite, $hoehe);
ImageGIF($neuesBild, $dir."/".$thumbName);
}
if($file[2] == 2)
{
# JPG
$altesBild = ImageCreateFromJPEG($originalBild);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild, $altesBild, 0, 0, 0, 0, $neueBreite, $neueHoehe, $breite, $hoehe);
ImageJPEG($neuesBild, $dir."/".$thumbName);
}
if($file[2] == 3)
{
# PNG
$altesBild = ImageCreateFromPNG($originalBild);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild, $altesBild, 0, 0, 0, 0, $neueBreite, $neueHoehe, $breite, $hoehe);
ImagePNG($neuesBild, $dir."/".$thumbName);
}
möchte die breite aber auch noch festlegen
__________________
Lasst euch nicht lumpen, hoch den Humpen!
|

29-09-2006, 15:12
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
naja, das hat ja noch nichts mit dem neuen code/problem zu tun, oder? Mal selbst drüber nachgedacht? Dann müsstest du mindestens die ansätze liefern können.
Das fällt mir z.B. spontan ein:
- Höhe/Breite vom original nehmen.
- kleinere Größe nehmen wir uns (=$size)
- dann ein Ausschnitt aus dem original mit der größe $size x $size wählen.
- (Position musst du selbst entscheiden. obere linke ecke wäre am einfachsten.)
- Das resultierende Bild verkleinern (auf 20 x 20 Pixel)
Fertig!
Alle benötigten Funktionen Findest du im manual unter den image-Funktionen.
|

29-09-2006, 15:16
|
carapau
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
|
|
hach her je
da sagst du mir leider nix neues.
aber irgendwie schneidet er das nicht raus sondern zeigt die 20x20px an und den rest schwarz?!
hab mir schon viele gedanken gemacht
__________________
Lasst euch nicht lumpen, hoch den Humpen!
|

29-09-2006, 15:20
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
Junge junge. Rumlabern kann ich auch.
Ich hab dich doch gerade erst auf die fehlenden Ansätze Hingewiesen. WO ist dein Code??
Poste deinen Code aufgeteilt in drei Teile:
Zitat:
- Höhe/Breite vom original nehmen.
- kleinere Größe nehmen wir uns (=$size)
|
Zitat:
- dann ein Ausschnitt aus dem original mit der größe $size x $size wählen.
- (Position musst du selbst entscheiden. obere linke ecke wäre am einfachsten.)
|
Zitat:
- Das resultierende Bild verkleinern (auf 20 x 20 Pixel)
|
Dabei solltest du übrigends schon selbst auf den Fehler stoßen, wenn du all unsere Regeln befolgst und Testausgaben machst.
|

30-09-2006, 16:59
|
carapau
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
|
|
Sooo, hier mal das Script, so wie du 's haben wolltest
PHP-Code:
$dir = "bilder/";
$originalBild = $dir."orig_bild".$zahl.".".$endung;
$thumbName = "thumb_bild_".$zahl.".".$endung;
# alte Maße holen
$file = getimagesize($originalBild);
$breite = $file[0];
$hoehe = $file[1];
# neue Maße
if($breite > $hoehe) {
$neueHoehe = 33;
$neueBreite = intval($breite * $neueHoehe / $hoehe);
}
else if ($hoehe > $breite) {
$neueBreite = 43;
$neueHoehe = intval($hoehe * $neueBreite / $breite);
}
# Ausschnitte (x, y)
$dst_x = 43;
$dst_y = 33;
# neues Bild erstellen
if($file[2] == 1)
{
# GIF
$altesBild = ImageCreateFromGIF($originalBild);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild, $altesBild, $dst_x, $dst_y, 0, 0, $neueBreite, $neueHoehe, $breite, $hoehe);
ImageGIF($neuesBild, $dir."/".$thumbName);
}
if($file[2] == 2)
{
# JPG
$altesBild = ImageCreateFromJPEG($originalBild);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild, $altesBild, $dst_x, $dst_y, 0, 0, $neueBreite, $neueHoehe, $breite, $hoehe);
ImageJPEG($neuesBild, $dir."/".$thumbName);
}
if($file[2] == 3)
{
# PNG
$altesBild = ImageCreateFromPNG($originalBild);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild, $altesBild, $dst_x, $dst_y, 0, 0, $neueBreite, $neueHoehe, $breite, $hoehe);
ImagePNG($neuesBild, $dir."/".$thumbName);
}
Am Ende soll ein Bild (43x33) rauskommen. Danke
__________________
Lasst euch nicht lumpen, hoch den Humpen!
Geändert von carapau (30-09-2006 um 17:04 Uhr)
|

30-09-2006, 17:07
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
Was will ich damit? Du wolltest das Script haben!  Außerdem hatte ich ein bestimmtes Format (3-Teile) gefordert. Ich sehe nichts davon.
Also. Meinste, dass wir dir das mal eben programmieren? So für lau? Das ist nicht der Sinn dieses Forums!
|

30-09-2006, 17:51
|
carapau
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
|
|
Ich hoffe auf Hilfe - mehr nicht.
Programmieren für lau erwarte ich nicht. Es geht nur um die x/y Sachen denke ich. Wenn mir da jemand 'nen Tipp geben könnte, wäre nett.
Guck dir mal das Bild im Anhang an.
__________________
Lasst euch nicht lumpen, hoch den Humpen!
|

30-09-2006, 18:15
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
Mal ehrlich. Du weißt was du tun musst, aber du versuchst es nicht. Was erwartest du noch von diesem Thread, wenn du nicht auf die gegebene Hilfe eingehst?
Ich habe dir extra eine "Step-By-Step" Anleitung gegeben und diese in 3 Teile unterteil, damit es dir leichter fällt. Und was kommt von dir? Nichts.
Von unserer Seite wird unter diesen Umständen auch nichts mehr kommen.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|