• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bild verkleiner wenn zu gross, nichts machen wenn zu klein!

saaaale

Neues Mitglied
Hi, ich hab eine Tabelle in der Bilder von verschiedensten I-net-Adressen angezeigt werden. Nun hat die Tabelle eine feste Breite von 350px. Die Höhe ist offen.

Nun kann es sein, dass ein Bild breiter als 350px resp. kleiner als 350px ist.

Mit der Bildeigenschft 'width="100%"' verkleiner sind die zu grossen Bilder genau so wie ich es will, nur ist das Problem, dass nun die zu kleinen Bilder auch vergrössert werden, was ich nicht will! Die Links zu den Bilder werden per PHP aus einer mysql-db genommen und in den String gesetzt.


Zusammenfassung:
Bild zu gross = verkleiner
Bild zu klein = nichts machen
 
Das könntest du mit getimagesize lösen: PHP: getimagesize - Manual

Am besten machst du das als Funktion.
Das könnte dann so aussehen:

PHP:
function testwidth($image)
{
list($width, $height, $type, $attr) = getimagesize($image);
if ($width<350)
$width_new=$width;
else
$width_new="100%";
return $width_new;
}
jetzt muss echo testwidth(); nur noch als Image-Attribut angegeben werden.



Mfg Mo3b
 
Zuletzt bearbeitet:
Hi & danke schonmal Mo3b!

Hab den Code so eingefügt:

Code:
<table style="width: 350px">
<?php
function testwidth($image)
{
    list($width, $height, $type, $attr) = getimagesize($image);
    if ($width<350)
        $width_new=$width;
    else
        $width_new="100%";
    return $width_new;
} 
?>
<?php 
    $sql = "SELECT Feldname FROM Tabellenname"; 
    $result = mysql_query($sql);
    while ($row = mysql_fetch_assoc($result)) {    
?>     

    <tr>
        <td>
            <img src="http://<?printf ($row["picture"]);?>" width="<? echo testwidth($row["picture"]); ?>" alt="Bild"/><br/>
        </td>
    </tr>
<?php
}
?>
</table>
Gibt folgender Fehler:

Code:
<b>Warning</b>:  getimagesize(): Unable to access www.DOMAIN.ch/images/header.jpg in <b>/home/www/web40/html/sponsoren.php</b> on line <b>75</b><br />
<br />
<b>Warning</b>:  getimagesize(www.DOMAIN.de/images/header.jpg): failed to open stream: No such file or directory in <b>/home/www/web40/html/sponsoren.php</b> on line <b>75</b><br />
Zeile 75 ist:
Code:
list($width, $height, $type, $attr) = getimagesize($image);
    if ($width<350)
Was mach ich noch falsch?
 
Mhh das kann ich dir jetzt leider auch nicht sagen. Die Funktion an sich funktioniert, habe sie bei mir mal getestet.

Geb doch mal $row["picure"] in der while Schleife aus. Passt dort der Link zur Bilddatei?

Probier auch mal aus, was passiert wenn du das http:// davorschreibst.

Mfg Mo3b
 
<b>Warning</b>: getimagesize(): Unable to access www.DOMAIN.ch/images/header.jpg in <b>/home/www/web40/html/sponsoren.php</b> on line <b>75</b><br />
<br />
<b>Warning</b>: getimagesize(www.DOMAIN.de/images/header.jpg) failed to open stream: No such file or directory in <b>/home/www/web40/html/sponsoren.php</b> on line <b>75</b><br />
Was mach ich noch falsch?
Du liest die Fehlermeldung nicht. Da steht, dass keine Datei "www.DOMAIN.de/images/header.jpg" existiert. Als erstes stelle ich mir die Frage, ob Du wirklich ein Verzeichnis "www.DOMAIN.de" (oben drüber steht www.DOMAIN.ch, also hast Du die Meldung hier frisiert!) hast? Und dann ist das noch ein relativer Pfad, anhand des angegebenen Pfades für Dein Script muss das Images in folgendem Verzeichnis liegen:
/home/www/web40/html/www.DOMAIN.ch/images/header.jpg
Und hast Du auf Groß-/Kleinschreibung geachtet?
 
Hi.

Geb doch mal $row["picure"] in der while Schleife aus. Passt dort der Link zur Bilddatei?
Wie meinst Du in der while-Schleife? Bin kein PHP-Guru ;-)
Der Link zur Datei passt.

Probier auch mal aus, was passiert wenn du das http:// davorschreibst.
:o, das könnte es sein, werde ich heute Abend ausprobieren!


@Efchen: Dein, sry, geklugscheisse, hilft einem Anfänger wie mir net wirklich, logisch habe ich die Pfade manipuliert, da hier net jeder wissen muss, um was es genau geht, soviel Ahnung habe ich, dass ich weiss, dass eine solche manipulierung der Fehlermeldung keinen Einfluss auf die Funktionalität meines Problems hat.

für Dein Script muss das Images in folgendem Verzeichnis liegen:
/home/www/web40/html/www.DOMAIN.ch/images/header.jpg
Das Bild muss auf dem FTP-Server im Verzeichnis "/home/www/web40/html/www.DOMAIN.ch/images/" liegen? Das ist nicht möglich, da die Bilder von verschiedensten externen und nicht eigenen Websites stammen und ich sie nicht runterladen kann/darf/will.


Gruss.
 
@Efchen: Dein, sry, geklugscheisse, hilft einem Anfänger wie mir net wirklich
Das ist aber nicht meine Schuld :-)

Das Bild muss auf dem FTP-Server im Verzeichnis "/home/www/web40/html/www.DOMAIN.ch/images/" liegen?
Das sagt die Fehlermeldung so aus. Da steht, dass er das Bild unter diesem Pfad nicht finden kann.

Das ist nicht möglich, da die Bilder von verschiedensten externen und nicht eigenen Websites stammen und ich sie nicht runterladen kann/darf/will.
Dann hast Du - wie ich schon klugscheißerisch festgestellt habe - den Pfad zu den Dateien so geändert, dass meine Aussage zwangsläufig falsch werden musste. Was auch immer da gestanden hat, die Fehlermeldung hat den selben Inhalt: Er kann die angegebene Datei nicht öffnen. Also ist die Datei wirklich nicht da, oder aber Du hast die URL zu der Datei falsch angegeben, häufigster Fehler von Windows-Usern: Groß-/Kleinschreibung nicht beachtet denn Windows ist das einzige Betriebssystem, das keinen Unterschied zwischen einem "A" und einem "a" erkennt).

Also ändere den Pfad zur Datei richtig ab, und dann gehts.
 
Zurück
Oben