Avatar billede micmicmicmic Nybegynder
02. juli 2005 - 04:09 Der er 8 kommentarer og
1 løsning

GDLib og variabler

Jeg bruger et GDLib script samt nogle variabler til at for indsat et billede på de uploadede wallpapers i mit galleri, jeg har nu sat den til at sætte det lille .png-billede ind når den originale fil er blevet uploadet,  men! det burde virke ville jeg mene, men det er scriptet ikke helt enigt med mig om, jeg får flg. fejl hvis jeg forsøger at gøre brug af en variabel:

Warning: imagecreatefromjpeg($billede): failed to open stream: No such file or directory in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 18
Warning: imagecopy(): supplied argument is not a valid Image resource in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 12
Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 14
Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 15

og her er så den kode jeg benytter mig af:

<?
    if($billede){
    include "../conn.php";
    $res = mysql_query("select * from galleri where billede = '$billede'");
    $row = mysql_fetch_array($res);

function IconizeImage($imgBack, $imgIcon, $imgDest = '$billede') {
  $imgX = imagesx($imgIcon);
  $imgY = imagesy($imgIcon);
//  imagealphablending($imgBack, 1);
 
  imagecopy($imgBack, $imgIcon, 0, 0, 0, 0, $imgX, $imgY);
 
  imagejpeg($imgBack, $imgDest, 85);
  imagedestroy($imgBack);
  imagedestroy($imgIcon);
}
IconizeImage(imagecreatefromjpeg('$billede'), imagecreatefrompng('icon.png'));
}
?>

Variablen $billede er stien til det senest uploadede billede, nb. det skal lige siges at IconizeImage-funktionen virker fint hvis man vælger at skrive en fil.jpg der _er_ placeret et sted i på hdd'en der ikke skal hentes fra DB'en, men det med variablen, hvorfor virker det nu ikke?
Avatar billede detox Nybegynder
02. juli 2005 - 04:24 #1
Måske uden apostroffer?

IconizeImage(imagecreatefromjpeg($billede), imagecreatefrompng('icon.png'));
Avatar billede micmicmicmic Nybegynder
02. juli 2005 - 04:42 #2
d'oh, hvad gør jeg så ved linjen "function IconizeImage($imgBack, $imgIcon, $imgDest = '$billede')"? kan ikke rigtigt fjerne apostrofferne, men da jeg ikke er en haj til php kender jeg ellers ingen løsninger?
Avatar billede well_r Nybegynder
02. juli 2005 - 06:43 #3
IconizeImage($imgBack, $imgIcon, $imgDest = '$billede')

det eneste du behøver at bruge ' til er når der er tale om en streng.. en variabel behøver i realiteten ikke nogen '.. så du kan sagtens sige $a = $b; så bliver $a og $b ens.

evt. byttes om her:
$imgBack, $imgIcon til $imgIcon, $imgBack i image copy.
i følge http://dk2.php.net/imagecopy skal DESTINATION's img-adresse først skrives, hvorefter man skriver source's adresse

skal på arbejde. kigger på det senere når jeg får fri
Avatar billede micmicmicmic Nybegynder
02. juli 2005 - 11:32 #4
ja, for det du lige kom med der, alså det ang. image copy gør bare at baggrunden (det valgte billede) kommer i forgrunden, og så kan man jo pludseligt ikke se mit lille fine logo mere. VIl lige læse lidt om den der imagecopymanual, og hvis det så viser sig at jeg rent faktisk forstår det, ja så er svaret der jo :)
Avatar billede micmicmicmic Nybegynder
02. juli 2005 - 11:34 #5
jeg stod af der :P
Avatar billede micmicmicmic Nybegynder
02. juli 2005 - 23:00 #6
jeg har fået fikset lidt i det nu, det eneste scriptet fejler ved er ved denne linje:
function IconizeImage($imgBack, $imgIcon, $imgDest = '$billede') {

istedet for at erstatte det gamle billede, opretter scriptet nu en fil ved navn $billede, og ikke det navn jeg loader længere nede i scriptet, nogle foreslag? den virker som sagt fint hvis jeg erstatter '$billede' med 'dether.jpg', problemet bliver jo så bare at der kun er mulighed for at lave _et_ billede. Det jeg bare ikke forstår er, hvorfor virker det ikke der, når det virker længere nede i scriptet?
Avatar billede mrgumble Nybegynder
03. juli 2005 - 23:09 #7
Lige for at rette op på tingene:
$imgDest = '$billede' medfører en variable, som har værdien "$billede" - IKKE værdien af $billede.
Hvis du vil tildele værdien af $billede til $imgDest er den meget let:
$imgDest = $billede
Forskellen i anførelses tegn (' og ") er, at ved ' bliver indholdet ikke vurderet. Derfor, hvis du f.eks. skrev:
$s = 'Test';
echo '$s\n';
Ville du få skrevet: $s\n
Derimod ville:
echo "$s\n";
resultere i: Test(linieskift).

Videre kan jeg se, at alle dine fejl stammer fra linie 15, der hvor filen hentes. Så for at løse dit problem, vil jeg mene, at du skal fjerne anførelsestegnen (') omkring $billede.
Avatar billede micmicmicmic Nybegynder
04. juli 2005 - 00:19 #8
har jeg skam prøvet, det resulterer i fejl på alle de linjer hvor der er tekst, og når jeg forsøger at rette linjen hvorpå der står:
function Iconizeimage($imgBack, $imgIcon, $imgDest = '$billede')
får jeg flg. fejl:
Parse error: parse error in C:\WM\www\dev\projekter\upload\uploadok2.php on line 4

Så uanset hvad jeg gør vil der jo være fejl på den linje, har prøvet med ", ' endda ingenting? det skal lige siges at linje 15 fungere efter ønske, da jeg har prøvet at erstatte $billede på linie 4 med f.eks. ønske.jpg, hvorefter jeg i min upload-folder har fundet et bilede med navnet ønske.jog hvor de 2 billeder var sat sammen korrekt, så det er kun den s***** function på linje 4 der er noget galt med.

Er der evt. nogle andre løsninger :)?
Avatar billede micmicmicmic Nybegynder
01. september 2005 - 19:36 #9
lukker, fandt svaret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester