[PHP/GD] Probleem krijgen truecolor kleuren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
Tweakers, ik heb een probleem met mijn script wat een truecolor thumbnail moet maken van een zojuist upgeload plaatje. Op zich gaat het redelijk, alleen zijn de kleuren niet helemaal helder. Het lijkt bijna zwart/wit maar dat is het niet. Het is nog lang niet goed.
Ziet iemand wat er mis gaat? Mijn dank zou groot zijn

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
<?php
function CreateThumb($pic){ 
    $srcImage = ImageCreateFromJPEG( $pic ); 
     
    $srcWidth = ImageSX($srcImage); 
    $srcHeight = ImageSY($srcImage); 

    
    if ($srcHeight > $srcWidth) { 
           $destHeight = 150; 
           $destwidth  = floor ($destHeight * $srcWidth / $srcHeight); 
    } else { 
           $destWidth  = 150; 
           $destHeight = floor ($destWidth * $srcHeight / $srcWidth); 
    } 


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

    ImageCopyResampled($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight); 
    Return ImageJPEG($destImage); 
     
    ImageDestroy($srcImage); 
    ImageDestroy($destImage); 
}

if($submit) {

    //$file = fopen($_FILES['userfile']['tmp_name'], "r");
    $binaryThumbnail = CreateThumb($_FILES['userfile']['tmp_name']);



 
    
    $query = "INSERT INTO images
              SET foto_full='$filecontents', foto_thumbnail='$binaryThumbnail'";
    $result = mysql_query($query) or die (mysql_error());




} else {


echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\" enctype=\"multipart/form-data\">"; 
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $maxkb . "\" />"; 
echo "Bestand:<br />"; 
echo "<input type=\"file\" name=\"userfile\" value=\"" . $_POST['userfile'] . "\" /><br />"; 
echo "<input type=\"submit\" name=\"submit\" value=\"uploaden\" />"; 
echo "</form>"; 



}
?>

aka Crypto T


Acties:
  • 0 Henk 'm!

  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 30-08 11:55
hmm de code klopt zo te zien.

alleen je imagedestroy gaat niet werken, de functie stopt namelijk bij het returnen van de jpg afbeelding.
PHP:
1
2
3
4
Return ImageJPEG($destImage);  

ImageDestroy($srcImage);  
ImageDestroy($destImage);


probeer de jpeg kwaliteit is aan te passen bij imagejpeg:

PHP:
1
Return ImageJPEG($destImage, '', 100);

Acties:
  • 0 Henk 'm!

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
volgens php.net is de default kwaliteit 75, ik dacht dat zal wel redelijk zijn dan.
Niet dus: voor de aardigheid de kwaliteit is op 100 gezet en het ziet er al heel behoorlijk uit.

Een hele ochtend voor 1 parameter.. hmmm

aka Crypto T


Acties:
  • 0 Henk 'm!

  • --MeAngry--
  • Registratie: September 2002
  • Laatst online: 19-09 16:35

--MeAngry--

aka Qonstrukt

troxx schreef op donderdag 02 december 2004 @ 11:18:
volgens php.net is de default kwaliteit 75, ik dacht dat zal wel redelijk zijn dan.
Niet dus: voor de aardigheid de kwaliteit is op 100 gezet en het ziet er al heel behoorlijk uit.

Een hele ochtend voor 1 parameter.. hmmm
Mja, toch, ik heb dat probleem ook gehad, dat alles zwart-wit werd of leek en ik heb het toen niet opgelost met een het verhogen van de JPEG-kwaliteit, 75 was bij mij ook ruim voldoende. Ik zal eens nakijken hoe ik het bij mij gedaan heb.

Tesla Model Y RWD (2024)


Acties:
  • 0 Henk 'm!

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
ik ben zeer benieuwd naar de aard van dit probleem. Ik heb een oplossing, maar hoe ik ertoe gekomen ben lijkt eigenlijk nergens op.

aka Crypto T


Acties:
  • 0 Henk 'm!

  • xander88
  • Registratie: September 2003
  • Laatst online: 28-02-2007
Welke gd-versie heb je? Oude versies hebben geen imagecreatetruecolor maar 'gewoon' imagecreate. Uit mijn hoofd weet ik toevallig dat het geval is bij php 4.1.2.
Pagina: 1