PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: irgendwas hats da mit den Bildern...


RMC
2004-07-19, 18:06:07
Hallo..

Mal wieder ein Problem, bei dem ich nicht ganz durchblicke.

Ich hab eine Web-Gallery programmiert, bei der ich die Bilder automatisch auf max. 800x600 resize - dies geschieht bei der Großansicht in einem Popup.

In PHP les ich die Breite und Höhe mit $imagesize = getimagesize($src) heraus.
Zur Information: der Pfad $src stimmt!

Bei der einen Gallery funktionierts gut, mit $imagesize[0] erhällt man ja die Breite (wenn ich mich nicht täusche) und die passt...das Bild wird angezeigt.

Bei einer anderen Gallery kann er von den Bildern keine Information lesen - die Debugausgabe bleibt leider leer, wenn ich $imagesize[0] ausgeben will, bekomm ich keinen Wert...NULL oder Leerstring.

Wie ist das möglich?
Dementsprechend funktioniert auch das resizen nicht usw...wie kann das sein? Plz help

Nase
2004-07-19, 20:25:34
Brauchst du überhaupt die ganzen Daten die getimagesize() liefert? Sonst probier es mal mit imagesx(). Eine direkte Lösung für das Problem sehe ich nicht. Dafür müsste ich mir den Quelltext angucken.

RMC
2004-07-19, 21:27:15
oke, er kanns auch mit imagesx() und imagesy() nicht lesen :( Ich glaub das Bild hat etwas, aber das kanns nicht sein, denn es hat ja schon einmal funktioniert...und jetz nicht mehr.

Änderung im Code war bisher keine, ich hab nur die Bilder neu hochgeladen.
Nachdem ich sie mit IrfanView kleiner gemacht hab (denn ein 600kb Foto von der Cam über FTP hochladen ist sehr zaach) ist mir der Fehler aufgefallen...hab gedacht das liegt daran, dass er die Bilder selbst neu schreibt.

Dann hab ich das Original nochmal hochgeladen aber der Fehler blieb. Er kann keine Width oder Height auslesen aus dem Bild :(

Nase
2004-07-19, 21:42:47
Liefert das Script denn überhaupt keine Fehlermeldung? Wenn nicht, vielleicht ist diese ja auch deaktiviert.

RMC
2004-07-19, 21:49:49
Fehlermeldungen sind aktiviert! Aber das Skript liefert einfach keine..der Code ist auch denkbar einfach:


$img = ImageCreateFromJpeg($src);

$x = ImageSX($img);
$y = ImageSY($img);

echo "width: ".$x;
echo "<br>";
echo "height: ".$y;


so...aber leider liefert das Skript bei den hochgeladenen Bildern nur "" bzw. NULL zurück :(

Das was mich ärgert ist ja, dass es bei den einen Bildern funktioniert, bei den andern nicht (obwohl es schon beide Male funktioniert hat).

Es muss an was anderem liegen :( Ich hab auch schon nachgesehen, ein Übertragungsfehler bei den Bildern ist nicht aufgetreten.

Nase
2004-07-19, 21:53:55
Wenn das Script keine Rechte hätte auf das Bild zuzugreifen, müsste doch eigentlich ein Fehler kommen. Also kanns da ja auch nicht dran liegen. Hmmm, keine Ahnung, sorry.

RMC
2004-07-19, 22:25:46
hm na gut...auf jeden Fall dankeschön :)

Vielleicht weiß ja noch jmd. anders Rat..

Aqualon
2004-07-20, 00:24:39
ImageCreateFromJpeg() erwartet als Parameter nur einen Dateinamen oder einen absoluten Pfad, d.h. du kannst hier keine relativen Pfadangaben zu der Datei verwenden. Möglicherweise ist das ja dein Problem.

Infos gibt es unter http://de2.php.net/manual/en/function.imagecreatefromjpeg.php (besonders den 1. und 3. Kommentar beachten!).

Aqua

Sphinx
2004-07-20, 13:42:46
Also bei mir klappt es bis jetzt Prima mit dem Auslesen der Daten aus den Bildinformationen...

Es sei denn es handelt sich nicht um eine gültige Bilddatei...
(Getestet mit JPG,GIF,BMP,PNG)


$imagehw = GetImageSize("$DOCUMENT_ROOT/gallery/" . $_GET["catid"] . "/" . $_GET["subid"] . "/" . $prev_image[$picturenum]);

// Breite und Höhe
$imagewidth = $imagehw[0];
$imageheight = $imagehw[1];

// Mime Typ ermitteln
$mime = $imagehw[2];

// Dateigröße in KB
$size = filesize("$DOCUMENT_ROOT/gallery/" . $_GET["catid"] . "/" . $_GET["subid"] . "/" . $prev_image[$picturenum]);
$size = sprintf("%0.2f", $size / 1024);



----------------

Schonmal drüber nachgedacht das es in der GD Lib kein GIF Support existiert fürs Resizen bzw. mit BMP habe ich auch meine gewissen Probleme noch...

RMC
2004-07-21, 13:00:32
oke ich habs grad rausgfunden...die durch IrfanView erzeugten, kleineren Bilder (800x600) haben keine Information gespeichert... .

Nun isses so...die Bilder von der Cam sind ja meistens 1600x1200 oder sogar noch höher...fürs Web total ungeeignet, ich bräuchte sie auf 800x600....jetz wollt ich IrfanView das machen lassen, aber dann kann PHP die Info nimma lesen :(

Deshalb neue Frage:

- kennt jemand ein anderes Freewareprogramm, bei dem man eine Reihe von Bildern auf einmal kleiner machen kann (max. Größe einstellbar, proportional, JPEG Qualität einstellbar) und welches im übrigen auch noch Thumbs erzeugen kann (max. Größe, Batch-Umbenennung)?

Hab bis jetzt Gallery verwendet, ist auch gut aber ich würd gern beide Features in EINEM Programm verwenden.

Könnt ihr was empfehlen?

Sphinx
2004-07-21, 22:02:17
Original geschrieben von RMC
Deshalb neue Frage:

- kennt jemand ein anderes Freewareprogramm, bei dem man eine Reihe von Bildern auf einmal kleiner machen kann (max. Größe einstellbar, proportional, JPEG Qualität einstellbar) und welches im übrigen auch noch Thumbs erzeugen kann (max. Größe, Batch-Umbenennung)?

Hab bis jetzt Gallery verwendet, ist auch gut aber ich würd gern beide Features in EINEM Programm verwenden.

Könnt ihr was empfehlen?


Schreib doch ein PHP Script dafür - ist im endeffekt nichts wirklich großartiges...

Auch wenn die upgeloadeten Bilder in 1600x1400 oder so sind und besser im JPG vorhanden sind kannst du im Upload Script ein Resize Script verwenden welches die Bilder in der Richtigen Proportion verkleinert (+weniger KB) auf deinem Webspace hinterlegt...

Es führen 1ooo Wege nach Rom und das Gewußt wie ist im endeffekt really simpel wenn man sich mit der Thematik PHP + GD Funktionen auseinander setzt + dem Dateisystem (um Ordnerbasierte Bilder zu Resizen und darzustellen.)

Wenn du Help brauchst - bin hier...