Bilder verkleinern, wenn zu groß

NightWatcher

Erfahrenes Mitglied
Hi,

habe mal wieder ein Problem.

Und zwar habe ich in meiner SQL Datenbank nen Code liegen, in welchem unter anderem auch Bilder Source drinnen steht.

Nun möchte ich dies herausfiltern, die Bildgröße davon überprüfen, und wenn zu groß, die höhe und breite ersetzen. (verkleinern).

Sowas geht doch sicherlich, oder?

Hat da evtl. jemand für mich nen Codeschnipsel?

Danke euch :)
 
http://de3.php.net/manual/de/function.getimagesize.php

PHP:
<?php
     $image =  "absolute/path/to/image/image.jpg";               
     $size = getimagesize("$image");
       $height = $size[1];
       $width = $size[0];
     if ($height > 150)
         {
               $height = 150;
               $percent = ($size[1] / $height);
               $width = ($size[0] / $percent);
         }
     else if ($width > 150)
         {
               $width = 150;
               $percent = ($size[0] / $width);
               $height = ($size[1] / $percent);
         }
     echo "<img src\"image/path/image.jpg\" height=\"$height\" width=\"$width\" />";
?>
 
Wenn das so easy wäre, hatte ich es selber gepackt ;)

Nein, wie ich oben schon geschrieben habe, muss aus dem HTML Code erstmal der img scr rausgesucht werden, überprüft werden, ob das Bild zu groß ist, und wenn zu groß, muss es eben verkleinert werden ;)
 
<offtopic>
Dimenson hat gesagt.:
PHP:
$size = getimagesize("$image");
Ich hab das jetzt schon so oft gesehen und mich immer wieder gefragt: welchen Sinn soll es haben, ein Variable in doppelte Anführungszeichen einzuschließen? Wäre nett, wenn mir das mal jemand erklärt. Ich versteh's nämlich wirklich nicht.
</offtopic>

@NightWatcher: Sagt dir der Begriff „reguläre Ausdrücke“ was? Die sollten dir hier nämlich weiter helfen.
 
Matthias Reitinger hat gesagt.:
@NightWatcher: Sagt dir der Begriff „reguläre Ausdrücke“ was? Die sollten dir hier nämlich weiter helfen.


EDIT: Habe es mir gerademal angeschaut... habe noch nicht so wirklich mit gearbeitet. Bisher hat es auch immer sehr gut ohne geklappt ;-]
 
Zuletzt bearbeitet:
So, bin mal etwas weiter. Evtl. versteht ihr dann ja etwas besser, was ich möchte ;)

also...

habe z.b. folgenden String

<href="http://www.minicarpc.de/" target=_blank>
<IMG height=60 src="http://www.mini-car-pc.de/bilder/banner.gif" width=468 border=0></A>

So, das ganze soll nun nach height und width durchsucht werden, und die werte, wenn eben zu groß, ersetzt werden.

Habe mal den ersten schritt getan, aber klappt natürlich nocht so recht ;)

PHP:
eregi_replace("(\width=([0-9]+))","width=200",$row[1]);

Wo liegt mein Fehler :)
 
Matthias Reitinger hat gesagt.:
<offtopic>
Ich hab das jetzt schon so oft gesehen und mich immer wieder gefragt: welchen Sinn soll es haben, ein Variable in doppelte Anführungszeichen einzuschließen? Wäre nett, wenn mir das mal jemand erklärt. Ich versteh's nämlich wirklich nicht.
</offtopic>
Dito. Das will ich jetzt auch endlich wissen. :-)
 
Ok, trotz allem mal zurück zum Thema :)

Sehe ich das richtig, dass du nur die height- und width-Eigenschaften der img-Tags verändern willst? Wenn ja, nach welchen Regeln sollen diese ersetzt werden? Und vor allem: wieso? :)
 
Matthias Reitinger hat gesagt.:
Ok, trotz allem mal zurück zum Thema :)

Sehe ich das richtig, dass du nur die height- und width-Eigenschaften der img-Tags verändern willst? Wenn ja, nach welchen Regeln sollen diese ersetzt werden? Und vor allem: wieso? :)


Hi also die Regel ist klar... WENN Bild zu breit, wie vorgegebene Breit, dann verkleinern... die Höhe natürlich dementsprechend anpassen.

Das ganze deshalb, um das Template nicht zu zerstören. An dem System, wo es implementiert wird, arbeiten später auch leute, die evtl. Bilder reinsetzen,die größer sind, als mein Template es zulässt ;)

PS: in einem string liegen auch ggf. mehr als nur ein Bild... also muss das ganze in einer schleife durchlaufen werden ;)
 
Zurück