Ik heb een leuk resize script hier ergens vandaan getoverd, waarvoor mijn dank 
Nu zit ik alleen met een klein probleempje, waarvan ik denk ik de oplossing weet, maar geen flauw idee heb hoe dit te bouwen.
Het script & probleem kort omschreven
Hij resized een jpg naar een nieuw formaat, en vult eventuele 'gaten' op met color 0 om te voorkomen dat de ratio verklooid wordt. Dit werkt perfect, echter alleen wanneer de breedte -veel- groter is dan de hoogte, dan wordt het plaatje wel geresized, maar komt er slechts een gedeelte (center) van de breedte in de source.
Volgens mij is dit af te vangen door een 2e check op de breedte uit te voeren, en dan eventueel wat dingen te wijzigen. Ik heb echter geen flauw idee.
Kan iemand ff kijken naar me scrippie en suggesties doen ?
Nu zit ik alleen met een klein probleempje, waarvan ik denk ik de oplossing weet, maar geen flauw idee heb hoe dit te bouwen.
Het script & probleem kort omschreven
Hij resized een jpg naar een nieuw formaat, en vult eventuele 'gaten' op met color 0 om te voorkomen dat de ratio verklooid wordt. Dit werkt perfect, echter alleen wanneer de breedte -veel- groter is dan de hoogte, dan wordt het plaatje wel geresized, maar komt er slechts een gedeelte (center) van de breedte in de source.
Volgens mij is dit af te vangen door een 2e check op de breedte uit te voeren, en dan eventueel wat dingen te wijzigen. Ik heb echter geen flauw idee.
Kan iemand ff kijken naar me scrippie en suggesties doen ?
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| <? set_time_limit(0); // we don't want to timeout. if ((isset($image)) && (is_uploaded_file($image))) { // resize the image if ($HTTP_POST_FILES['image']['type'] != "image/pjpeg") die($HTTP_POST_FILES['image']['type'] . " is not a supported file type"); // Vars declareren $inputImg = ImageCreateFromJPEG($image); $srcX = imagesx($inputImg); $srcY = imagesy($inputImg); $dstY = 300; // fixed Y for the image. always the same $maxX = 400; // max X for image, if image is smaller it will be centered $ratio = ($srcY / $dstY); $dstX = ($srcX / $ratio); $outputImg = ImageCreateTrueColor($maxX, $dstY); $sm_dstY = 112; $sm_maxX = 150; $sm_ratio = ($srcY / $sm_dstY); $sm_dstX = ($srcX / $sm_ratio); $sm_outputImg = ImageCreateTrueColor($sm_maxX, $sm_dstY); imagefill($outputImg, 0, 0, ImageColorAllocate($outputImg, 255, 255, 255)); imagefill($sm_outputImg, 0, 0, ImageColorAllocate($sm_outputImg, 255, 255, 255)); // int imagecopyresampled ( resource dst_im, resource src_im, // int dstX, int dstY, int srcX, int srcY, // int dstW, int dstH, // int srcW, int srcH); // dst = Destination // src = Source imagecopyresampled($outputImg, $inputImg, (($maxX - $dstX) / 2),0,0,0, $dstX, $dstY, $srcX, $srcY); imagecopyresampled($sm_outputImg, $inputImg, (($sm_maxX - $sm_dstX) / 2),0,0,0, $sm_dstX, $sm_dstY, $srcX, $srcY); header("content-type: image/jpeg"); imagejpeg($outputImg, "images/large/" . $image_name); imagejpeg($sm_outputImg, "images/small/" . $image_name); // Debug checking, view images on screen to see the new results. echo "[img]\"images/large/"[/img]<BR>"; echo "[img]\"images/small/"[/img]<BR>"; } else // print the form { printf("<form enctype=\"multipart/form-data\" action=\"\" method=\"post\">"); printf("Resize image: <input name=\"image\" type=\"file\">"); printf("<input type=\"submit\" value=\"Submit Image\">"); printf("</form>"); } ?> |