Versio

[GD]Eerst grootte veranderen, dan bijsnijden

Overzicht Reageren

Harmen

Harmen

08/03/2008 20:41:00
Quote Anchor link
Hallo,
Ik heb een thumbnailfunctie en probeer daarmee op 2 manieren een plaatje te verkleinen. Bij de eerste manier maakt ie het plaatje alleen kleiner, maar bij de tweede manier maakt ie het plaatje eerst kleiner en dan moet ie em nog bijsnijden (van de onderkant moet een stukje af). Het kleiner maken van het plaatje lukt, maar het bijsnijden daarna werkt niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$tmp_img
= imagecreatetruecolor($breedtenieuw, $hoogtenieuw);
$temp_img = imagecreatetruecolor($breedtenieuw, $althoogte);
if($type == false){
    imagecopyresampled($tmp_img, $img,0,0,0,0,$breedtenieuw,$hoogtenieuw,$breedte,$hoogte);
    imagedestroy($img);
    $img = $tmp_img;    
}

elseif($type == true){
    imagecopymerge($tmp_img, $img,0,0,0,0,$breedtenieuw,$hoogtenieuw,$breedte,$hoogte);
    imagecopy($temp_img, $tmp_img,0,0,0,0,$breedtenieuw,$althoogte,$breedtenieuw,$hoogtenieuw);
    imagedestroy($img);
    $img = $temp_img;
}

?>


Ik dacht, ik doe het in 2 stapjes. Eerst de variabele $tmp_img, waar het verkleinde plaatje in komt, en dan de variabele $temp_img, waar een stukje van de onderkant is afgesneden.
$althoogte staat voor alternatieve hoogte (een vaste hoogte van 197px).

Als ik imagecopy weghaal dan werkt het, maar als ik het laat staan krijg ik geen plaatje terug. Iemand een idee hoe dat kan komen?


Update hieronder:
Gewijzigd op 01/01/1970 01:00:00 door Harmen
 
PHP hulp

PHP hulp

24/05/2012 19:12:46
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Harmen

Harmen

10/03/2008 11:47:00
Quote Anchor link
Ik heb het nu wat veranderd, bovenstaande hoef je nu niet te lezen ;). Ik wil nu alleen, als $type == true, een stukje van de onderkant afsnijden.
Werkt nu bijna goed, de afmetingen zijn precies goed... Alleen is het plaatje helemaal zwart. Heb ik de variabele '$img' op de verkeerde plek staan ofzo? Want daarboven ( imagecopyresampled ) werkt die '$img' variabele prima.

Dit is het script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$tmp_img
= imagecreatetruecolor($breedtenieuw, $hoogtenieuw);
$temp_img = imagecreatetruecolor($breedtenieuw, $althoogte);
if($type == false){
    imagecopyresampled($tmp_img, $img,0,0,0,0,$breedtenieuw,$hoogtenieuw,$breedte,$hoogte);
    imagedestroy($img);
    $img = $tmp_img;
}

elseif($type == true){
    imagecopy($temp_img, $img,0,0,$breedtenieuw,$althoogte,$breedte,$hoogte); // Hier gaat het dus om. Ik krijg van deze imagecopy de goede afmetingen, alleen is het scherm zwart, en niet een plaatje...
    imagedestroy($img);
    $img = $temp_img;
}

?>


Hierzo staat wat ik bedoel:
http://zjapske.no-ip.org/hoppelblog/thumb/index.php

Links is helemaal goed, rechts niet echt goed..
Gewijzigd op 01/01/1970 01:00:00 door Harmen
 



Overzicht Reageren