[b]Je kunt op google zoeken JPEG RESIZER,
het is een wel een exe bestand dat je niet hoeft te instaleren,
HANDIG DUS.
je kopierd dan gewoon de bestaande afbeelding naar jouw pc en de resizer doet de rest en het is een heel simpel programma als je een beetje engels kunt.
<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;
// Content type
header('Content-type: image/jpeg');
/* aan de browser zeggen dat hij een image zal krijgen. */
// Get new dimensions
list($width, $height) = getimagesize($filename);
/* hier krijg je de oude grootte van de image */
$new_width = $width * $percent;
$new_height = $height * $percent;
/* hier vermenigvuldigt het script de orginele grootte met 0,5. Hierdoor wordt de image 50% kleiner */
// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
/* hierdoor heb je mooiere images */
$image = imagecreatefromjpeg($filename);
/* gaat de orginele image gaan halen */
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
/* maakt de nieuwe image aan, met de breedte, hoogte, orginele image ... */
// Output
imagejpeg($image_p, null, 100);
/* dit stuurt de nieuw aangemaakte image naar de browser */
?>
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.
Oftewel: Vul in de 2e parameter het volledige (interne) pad in waar je dit bestand wilt opslaan. Zorg ook dat de folder waarin je het plaatje wilt zetten de juiste rechten heeft.
bool geeft het type aan, denk dus dat hij false retourneerd als de functie niet succesvol is uitgevoerd, en bij true natuurlijk wel.
die null (resource) als 2e parameter, klopt denk ik niet, het moet ook een string zijn. dus vul daar gewoon je path in zoals FangorN al duidelijk aangaf, en zog dat het de juiste rechte heeft en dan werkt het. (denk ik)
arian - 07/07/2006 12:04 (laatste wijziging 07/07/2006 12:04)
HTML interesse
Als ik dit invul: bool imagejpeg ($image_p [, string '../thumb' [, int 100]] );
Dan doet hij het niet hoor , want dan zegt hij: Parse error: parse error in /home/httpd/vhosts/***.nl/httpdocs/***/upload.php on line 115
(line 115 is dus die ene regel)
Dat is het niet... de juiste code van het plaatje wordt niet in het bestand gezet... want als je dan zo'n bestand opent met kladblok staat er 'resource id#7' oid...
Dat kan allerlei oorzaken hebben.
Probeer je probleem eens in stukken op te delen, anders weet je niet waar het schip strandt...
#1: plaatje opvragen en uitlezen
#2: plaatje resizen (en in eerste instantie naar het scherm afdrukken met header())
#3: plaatje opslaan met imagejpeg(), waarin je aangeeft waar het plaatje moet worden opgeslagen
Verdiep je in de materie (functies + user contributed notes op php.net) - daar staat echt alles wat je wilt weten, maar je moet het natuurlijk wel proberen te begrijpen.
vraagje, als ik het script gebruik krijg in mijn browser het volledige path naar image te zien.., dat komt door header('Content-type: image/jpeg'); want als ik het weghaal krijg ik alleen maar errors
heb nu op php.net gezocht, maar er staat niet hoe ik dit probleem kan oplossen
Thomas - 07/07/2006 16:33 (laatste wijziging 07/07/2006 16:37)
Moderator
Het script?
Welk script?
Als je zo'n content-type-header gebruikt, dan kun je vervolgens een plaatje afdrukken naar het scherm (met fopen, fwrite, etc. of fpassthru()).
Op die manier kun je dus plaatjes via php afdrukken (<img src="image.php?show=1">plaatje</a>), waarbij image.php een script is waarin zo'n header-regel staat.
NB: Als het script meer dan enkel het plaatje "naar output stuurt", of spaties of regelovergangen bevat, zal het script waarschijnlijk niet goed werken, omdat je daarmee de formattering van je content-type om zeep helpt. Wanneer je dus zoiets gebruikt als header("Content-type: image/jpeg"), kun je een plaatje afdrukken, en verder niets.
Volgens mij was een goede manier om fouten hierin te debuggen de volgende: Gebruik als content-type "text/plain" in plaats van "image/jpeg" - dan kun je PHP-errors zien (die er dan ongetwijfeld zullen zijn, wanneer je geen plaatje te zien krijgt).