[php] probleem met image naar server schrijven

Pagina: 1
Acties:
  • 109 views sinds 30-01-2008
  • Reageer

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 10:01

HenkS

Da_king alias HenkS

Topicstarter
hallo, ben ik weer :), ik heb de volgende code om een thumbnail te genereren en daarna weg te schrijven:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?
$pic = "vrouwen/sexyswim0813.jpg";

function CreateThumb($pic){
    $srcImage = ImageCreateFromJPEG( $pic );
    
    $srcWidth = ImageSX($srcImage);
    $srcHeight = ImageSY($srcImage);

    $destWidth = ($srcWidth / 2.5 );
    $destHeight = ($srcHeight / 2.5 );

    $destImage = imagecreate($destWidth, $destHeight);

    ImageCopyResized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
    //$destImage = $destImage . ".png";
    //create the image
    Return ImageJPEG($destImage);
    
    ImageDestroy($srcImage);
    ImageDestroy($destImage);

}


//ImageJPEG("vrouwen/thumbs/mark.jpg");

$test = CreateThumb($pic);
ImageJPEG($test, "vrouwen/thumbs/testje.jpg", 100);
?>

alles gaat goed tm $test = CreateThumb($pic);
dus ik krijg mooi een thumbnail te zien.

nu wil ik dus deze thumbnail wegschrijven naar de server, in de map vrouwen/thumbs

ik heb de goede schrijfrechten op de thumbs map gezet, maar er wordt toch niks ingezet, why oh why?

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 10:01

HenkS

Da_king alias HenkS

Topicstarter
effe een toevoeging:

zet ik:
ImageJPEG($srcImage, "vrouwen/thumbs/testje.jpg");

onder de regel:
$srcImage = ImageCreateFromJPEG( $pic ); (dit is de 1e regel van de functie)

dan doet hij het wel, maar ja, dan sla ik origineel ergens anders op, maar wil dus thumbnail ergens anders opslaan, waarom wil dit niet?

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 10:01

HenkS

Da_king alias HenkS

Topicstarter
zo dit wordt een monoloog met mezelf :)

heb namelijk de oplossing al gevonden: zo werkt het, zoek de verschillen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
$pic = "vrouwen/sexyswim0811.jpg";

function CreateThumb($pic){
    $srcImage = ImageCreateFromJPEG( $pic );
    
    $srcWidth = ImageSX($srcImage);
    $srcHeight = ImageSY($srcImage);

    $destWidth = ($srcWidth / 2.5 );
    $destHeight = ($srcHeight / 2.5 );

    $destImage = imagecreate($destWidth, $destHeight);

    ImageCopyResized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
    //create the image
    ImageJPEG($destImage, "vrouwen/thumbs/testje.jpg");
    Return ImageJPEG($destImage);
    
    ImageDestroy($srcImage);
    ImageDestroy($destImage);

}
CreateThumb($pic);
?>

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 10:01

HenkS

Da_king alias HenkS

Topicstarter
zo ben ik weer, ga verder met mijn monoloog, vind alleen deze x geen antwoord zelf :(

wat is het probleem, met bovenstaande functie display ik een thumbnail. nu wil ik dus dmv een loop meer thumbnail dispalyen, daarvoor gebruik ik nu deze code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?
function CreateThumb($pic){
    $srcImage = ImageCreateFromJPEG( $pic );
    
    $srcWidth = ImageSX($srcImage);
    $srcHeight = ImageSY($srcImage);

    $destWidth = ($srcWidth / 2.5 );
    $destHeight = ($srcHeight / 2.5 );

    $destImage = imagecreate($destWidth, $destHeight);

    ImageCopyResized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
    //create the image
    ImageJPEG($destImage, "vrouwen/thumbs/testje.jpg");
    Return ImageJPEG($destImage);
    
    ImageDestroy($srcImage);
    ImageDestroy($destImage);
}

$url="vrouwen/";

?>
<table border=1 width=100%>
<tr>
<?
if ($dir = @opendir($url)) {
    while($file = readdir($dir)) {
        if (ereg("[jpg]$", $file) OR ereg("[gif]$", $file)){
            $smalpic = $loc . "/thumbs/" . $file;
            $bigpic = $url . $file;
            echo "<td>";
            CreateThumb($bigpic);
            echo "</td>";
        }
        
    }
}
?>
</tr>
</table>
?>

waar het dus om gaat is het loop gedeelte waar ik steeds die functie aanroep.

(ja ik weet dat nu alle plaatjes naast elkaar komen en ik nooit een regel omlaag ga, maar daar gaat het niet om)

dit is wat ik dan terug krijg:
http://www.roostenlaan.nl/image_create.php

dus echt vaag.
doe ik 1x de functie aanroepen gaat het wel goed, wie oh wie kan mij helpen?

  • franklin
  • Registratie: Februari 2000
  • Laatst online: 14-09 14:27

franklin

denkt teveel...

volgens mij moet je nog:
code:
1
header("content-type: image/jpeg");

voordat je het plaatje uitstuurt!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 10:01

HenkS

Da_king alias HenkS

Topicstarter
heb het gedaan voordat ik de functie aanroep in de loop, maar maakt geen bal uit :?

snap er niks van, dat het niet werkt, why oh why?

  • franklin
  • Registratie: Februari 2000
  • Laatst online: 14-09 14:27

franklin

denkt teveel...

waarom return je ImageJPG(...)?? Wat is het resultaat als je dat weg laat?

misschien moet je een apart script maken voor de thumbnail! nu probeer je alles in principe in een keer naar de output te schrijven,..

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 10:01

HenkS

Da_king alias HenkS

Topicstarter
dat return, maakt id niks uit.

maar dat van een apart script had ik ook al van iemand anders gehoord (DeWIE), maar dit snap ik niet helemaal.

wordt hier dus mee bedoeld:
1 php bestand waarin mijn thumbnail functie staat
1 php bestand waarin in de tabel dmv een loop opbouw en dan de functie steeds uitvoer die in dat andere bestand staat?

  • franklin
  • Registratie: Februari 2000
  • Laatst online: 14-09 14:27

franklin

denkt teveel...

Ja en dat thumbnail script is dus eigenlijk een dynamisch plaatje! dus zou je in script 2 iets als [img]"script1.php"[/img] moeten doen!

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Ik zit nu heel interessant (weer veel te laat :P) deze thread door te lezen.. Wat ik wil, is dat een user een plaatje upload, en dat dat plaatje geresized in de database komt.. Maar ImageJPG($destination) laat automatisch dat plaatje zien. Dat is op te lossen door ob_start() en ob_get_contents() te gebruiken! Misschien handig voor sommige mensen?

Greetz elviver
Pagina: 1