DerDu
Moin Leutz..
wieder der Titel schon sagt, will ich von einer Funktion Thumbnails erstellen lassen..
soweit is das kein Problem, aber ich hab nen komischen fehler erhalten.. hab bestimmt vergessen was zu coden.. aber das werdet ihr mir dann schon sagen
also die function getimagesize macht probleme.. einzeln in der Datei macht sie keine probleme zB:
| php: |
1:
|
<?php getimagesize("temp/ari.jpg"); ?> |
|
aber sobald ich sie in ne function pack und den string mit der variablen übergebe läufts schief zB: (Ausschitt)
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
<?php $bild = ("temp/ari.jpg");
function thumbnail($bild)
{
// Bilddaten feststellen
$size=getimagesize($bild);
$breite=$size[0];
$hoehe=$size[1];
... ?> |
|
da bringt er mir, das er den stream nich öffnen kann, aber das bild is eindeutig da.
also woran könnte es liegen
daHooligan
das leigt daran, dass du die Funktion irgendwie aufrufen musst.
Wenn du eine Fuktion schreibst und diese dann irgendwo aufrufst kannst du dir das vorstellen, als ob du den in der Funktion geschriebenen Code dort einfügst.
Kurz:
das hier:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
function thumbnail($bild)
{
$size=getimagesize($bild);
$breite=$size[0];
$hoehe=$size[1];
echo $breite;
echo $hoehe;
}
thumbnail("http://www.matzeseifert.de/avas/ava.jpg");
thumbnail("bild.jpg"
|
|
Wird im Prinzip so interpretiert:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
$size=getimagesize("http://www.matzeseifert.de/avas/ava.jpg");
$breite=$size[0];
$hoehe=$size[1];
echo $breite;
echo $hoehe;
$size=getimagesize(bild.jpg);
$breite=$size[0];
$hoehe=$size[1];
echo $breite;
echo $hoehe;
|
|
oder ganz kurz:
du musst deine Funktio thumbnail() noch aufrufen, nachdem du sie "bestimmt" hast.
in deinem Fall wäre das:
[PHP]
function thumbnail($bild)
{
// Bilddaten feststellen
$size=getimagesize($bild);
$breite=$size[0];
$hoehe=$size[1];
}
thumbnail("temp/ari.jpg")
[/CODE]
wenn du die Funktion einmal "bestimmt" hast, kannst du sie jedesmal, wenn du sie brauchst mit "thumbnail(bildname);" aufrufen.
DerDu

weis das ich die func noch aufrufen muss..
aber genau da bringt er mir dann den fehler, das getimagesize die an die function übergebene datei nich findet, aber wenn ich das auserhalb einer function aufrufe macht ers
@daHooligan
quasi so steht es momentan da
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?php $bild = ("temp/ari.jpg");
function thumbnail($bild)
{
// Bilddaten feststellen
$size=getimagesize($bild);
$breite=$size[0];
$hoehe=$size[1];
}
thumbnail($bild); ?> |
|
und das bringt er als fehler
| code: |
1:
|
Warning: getimagesize(temp/ari.JPG): failed to open stream: No such file or directory in ... |
|
neonator
das prob ist wahrscheinlich, dass der unix server, auf dem du es wahrschienlich testest, die gross/kleinschreibung beachtet...
wenn ich dich wäre, würde ich die dateinamen alle klein schreiben.. dann gibts nicht so viel konflickte...
DerDu
issn win2k server
und selbst mit alles klein funzt es nich
DerDu
hm.. kann es sein ,das die funktion getimagesize mit pfadangaben nich ganz klar kommt???
bei einem bild:
./test.jpg
macht ers
aber bei
./temp/test.jpg
steigt er aus
daHooligan
liegt vllt. an deinem variablennamen ($bild), der doppelt vorkommt, versuch da mal was anderes...
oops... hab die fehlermeldung nicht gesehen
sorry, aber bin grad krank und steh' dementsprechend unter allen möglichen Drogen(wusstet ihr, dass mancher Hustensaft Opium-ähnliche Stoffe enthält (allerdings keine Opiate, die brauschen ja hauptsächlich) und man nach Einnahme für den Rest des Tages nicht mehr Aut fahren sollte

)
DerDu
nö..
also irgendiwe musses daran liegen, so übergebe ich das bild
$hashfiles[$search[count][files]][pfadname]."/".$hashfiles[$search[count][files]][dateiname]
aber in $hashfiles[$search[count][files]][pfadname] steht ./temp
und in $hashfiles[$search[count][files]][dateiname] steht ari.jpg
wieso also geht es nich (selbst ohne ./)
*seufz* .. deine klasse geht bei mir auch net
DerDu
hm.. und bei manchen versuchen krig ich ne wirre anzeige
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
ÿÛC
$.' ",#(7),01444'9=82<.342ÿÛC
2!!22222222222222222222222222222222222222222222222222ÿÀ("ÿÄ
ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ
ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ
$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ?ñkXd¹š8a
$²0TEnI=Z•ÔDâ0à¾p@$ÿJèüpšLš–±4e›_?vGÂŽÿÝßÿëÅnè:>‹¡9¾Ž!s4`™6îd'€ÙÁïÍm_éÊÅÑÃûXÞçÈÏØ®øTc$sÖ´ç´dšušWŠf‰ÊŽ7¸ÈÍP•BHUqé]7抒9¶n,Ò’âHô[˜V-Ë4‘†$1¸ŽÕ×xcQŠK‹{†h Tµa1%T)Îw`‘ÀçëøãAƒ@žÀÇûc$¹ z`öÈ-þMh¥Ì#DšÂ-Ñ3G峆P
ž¼çÓ=?¥yX¹ÂU»ž–Œû·z«jwº…Ð?»šBW )Ç# oLzÖüLÕ¯qk
¤(#-õnK^µ+‘ˆèkÐ âè®S†²’ªùŽŠÖæB’çzå™›;sÐýãÇZ¸#€œËœ¹o¨àŽGóéEá½Ïj;z²3®àÛòØlœŽž»qùVN(¢½|ðQåb¿ŒÏÿÙ |
|
kann es sein, das das bereits das bild is, und ich es nur falsch ausgebe?
daHooligan
das könnte gut sein,
wie gibst du denn das Bild aus??
tkshorty
also ich hab das mal bei mir ausprobiert.hatte erst net daran gedacht, das ich das bild und das script in verschiedenen verzeichnissen hatte.hat mir genau die gleiche fehlermeldung ausgegeben.nachdem ich das richtige verzeichnis angegeben hatte hats geklappt
DerDu
so.. also das mit den verzeichnissen hab ich mitlerweile behoben,.. es ist wirklich so, das die funktion keine rleativen pfadangaben versteht, aber mittels
bsp:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
<?php $dir = './temp'; //wird so von einer funktion ausgegeben (deshalb ./)
$bild = 'ari.jpg';//ebenfalls von der funktion
$bild = $dir.'/'.$file;
$bild = dirname($_SERVER[PATH_TRANSLATED]).'/'.cut_root($bild);
//cut_root entfernt nur das eventuell vorhandene ./
//in $bild steht jetzt der absolute pfadname zum bild auf der serverplatte
//(zb: c:/htdocs/temp/ari.jpg) ?> |
|
funktioniert es, d.h. getimagesize läuft ohne den stream fehler
Nun is nur noch das problem mit der Bildausgabe.
Er gibt mit nur den oben genannten wirren codefetzen aus.., aber nich eine adresse zum bild oder so.
Ich schreibe das was zB ImageJPEG rauskommt mir print in die datei.. liegt es daran?
wie muss ich es anders machen?
Hanfling
Es macht doch genau das was es soll. Nur du machst nicht was du willst.
| Zitat: |
| The filename argument is optional, and if left off, the raw image stream will be output directly. To skip the filename argument in order to provide a quality argument just use an empty string (''). By sending an image/jpeg content-type using header(), you can create a PHP script that outputs JPEG images directly. |
http://de3.php.net/manual/en/function.imagejpeg.php
DerDu
hm.. also ich hab es jetzt so in meiner function steh, kriege aber immer noch die codeanzeige statt dem bild
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
|
<?php elseif($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG($bild);
$neuesBild=ImageCreate($neueBreite,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
header('Content-Type: image/jpeg');
ImageJPEG($neuesBild,'',90);
} ?> |
|
DerDu
hm.. es funktioniert jetzt.. allerdings nur mit einer neuen php datei, also "<img src=funktion.php?...
egentlich wollte ich das ja vermeiden, aber es geht nich anders, da ich sonst den header wert nich durchkrieg..
ich speicher normalerweise die ganze seite beim erstellen in einer variablen, und schiebe sie dann auf einmal mit print auf den browser. da wär der header dann irgendwo zwischendrin, wo halt die thumbs sein sollen, d.h. es wär sowohl code davor, als auch danach.. also geht es nich
nun gehts wie gesagt,.. danke das ihr mich auf die richtige spur gebracht habt