transparantie bij het uploaden van foto's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Leen Strijk

Leen Strijk

05/04/2006 11:07:00
Quote Anchor link
Ik heb een script gemaakt om foto's te uploaden.
Nu is het probleem dat als ik een gif upload hij de transparante kleure zwart maakt.

Wie weet in welke richting ik de oplossing moet gaan zoeken?
 
PHP hulp

PHP hulp

25/04/2024 05:45:42
 
- SanThe -

- SanThe -

05/04/2006 11:56:00
Quote Anchor link
Uploaden is gewoon iets copiëren, er wordt niets aan het bestand gewijzigd.
 
Leen Strijk

Leen Strijk

05/04/2006 12:00:00
Quote Anchor link
Euhhh,

Zoals ik het gemaakt heb schijnbaar wel.

Ik zal mijn script meegeven
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
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?if (!isSet($_POST['submit']))
{
show_form();
}
elseif ($_FILES['bestand']['size']>"1000000")
    {
    echo "Het bestand is te groot en duurt te lang om te uploaden.<br/>
    Maak het bestand kleiner of :<br/>";
    showform();
    }

else
{
handle_form();
}
}
////
function handle_form()
{
    if (isSet($_POST['submit']) && is_uploaded_file($_FILES['bestand']['tmp_name']))
    {  

    $filename = $_FILES['bestand']['tmp_name'];
    
    $size = getimagesize($filename);
    $breed = $size[0];
    $hoog = $size[1];
    if ($breed > $hoog)
    {
        $factor = $breed/350;
    }
    else
    {
    $factor = $hoog/350;
    }
    
// maak de nieuwe maten
    $new_width = $breed / $factor;
    $new_height = $hoog / $factor;
    echo " nieuwe breedte = ".$new_width." nieuwe hoogte = ".$new_height;
// Resample
    $image_p = imagecreatetruecolor($new_width, $new_height);
echo $_FILES['bestand']['type'];
    if ($_FILES['bestand']['type']=='image/gif')
    {
    //echo "Het is een gif bestand";
        $image = imagecreatefromgif($filename);
    }
    elseif ($_FILES['bestand']['type']=='image/jpeg' || 'image/pjpeg')
    {
    echo "Het is een jpg bestand";
    $image = imagecreatefromjpeg($filename);
    }
    else
    {
    echo "alleen gif of jpg bestanden kunnen ingestuurd worden.";
    exit;
    }
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $breed, $hoog);
// schrijf het bestand weg
    if (!imagejpeg($image_p, "../images/artikelen/".$_FILES['bestand']['name']."", 100))
    {
    echo "niet gelukt";
    }
    else
    {
    echo "upload en resample van grote foto OK";
    
    }

    unlink($_FILES['bestand']['tmp_name']);
    thumb();
    }
      else
    {  
    show_form();    
    }
}    
    
    

function thumb()
{    //bekijk de huidige maten
echo $_FILES['bestand']['tmp_name'];
    $filename = "../images/artikelen/".$_FILES['bestand']['name'];
    
    $size = getimagesize($filename);
    $breed = $size[0];
    $hoog = $size[1];
    if ($breed > $hoog)
    {
    //echo "breed ".$breed." > hoog ".$hoog."";
    $factor = $breed/100;
    }
    else
    {
    //echo "breed ".$breed." < hoog ".$hoog."";
    $factor = $hoog/100;
    }
    //echo " factor = ".$factor;
// maak de nieuwe maten
    $new_width = $breed / $factor;
    $new_height = $hoog / $factor;
    echo " nieuwe breedte = ".$new_width." nieuwe hoogte = ".$new_height;
// Resample
    $image_p = imagecreatetruecolor($new_width, $new_height);
echo $_FILES['bestand']['type'];
    if ($_FILES['bestand']['type']=='image/gif')
    {
    //echo "Het is een gif bestand";
        $image = imagecreatefromgif($filename);
    }
    elseif ($_FILES['bestand']['type']=='image/jpeg' || 'image/pjpeg')
    {
    echo "Het is een jpg bestand";
    $image = imagecreatefromjpeg($filename);
    }
    else
    {
    echo "alleen gif of jpg bestanden kunnen ingestuurd worden.";
    exit;
    }
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $breed, $hoog);
// schrijf het bestand weg
    if (!imagejpeg($image_p, "../images/thumb/".$_FILES['bestand']['name']."", 100))
    {
    echo "niet gelukt";
    }
    else
    {
    echo "<img src=\"../images/thumb/".$_FILES['bestand']['name']."\">bestandsnaam = ".$_FILES['bestand']['name']."<br/>";
    echo "<img src=\"../images/artikelen/".$_FILES['bestand']['name']."\"><br/>";
    show_form();
    }
}function show_form()
{  
    echo "Kies een bestand om naar de server te uploaden:<br>\n";
    echo "<form action='".$_SERVER['PHP_SELF']."' method='post' ";
    echo "enctype=\"multipart/form-data\">\n";
    // Zet de maximale bestandsgrootte (VERPLICHT!!)
    echo "<input type='hidden' name='MAX_FILE_SIZE' value='100000'>";
    echo "bestand: <input type='file' name='bestand' size='20'><br>\n";
    echo "<input type='submit' name='submit' value='VERZENDEN'>&nbsp;\n";
    echo "<input type='reset' name='reset' value='leeg maken'></td>\n";
    echo "</form>\n";
    
}

echo "<a href=\"toon_thumb.php\" target=\"blank\">Toon thumbs</a><br/>";
echo "<a href=\"javascript:window.close();\">Close This Window</a>";
?>
 
Leen Strijk

Leen Strijk

05/04/2006 12:04:00
Quote Anchor link
Ik zit op php.net te kijken maar het lijkt er op dat ik moet vertellen welke kleur in tranaparant moet worden omgezet.

met bijv. zoiets:
$image = "blad.gif";
$im = imagecreatefromgif($image);
$white = imageColorAllocate ($im, 255, 255, 255);
$trans = imagecolortransparent($im,$white);
 
- SanThe -

- SanThe -

05/04/2006 12:18:00
Quote Anchor link
Ja, jij bent je plaatje aan het veranderen. Daar kan ik je helaas niet bij helpen. Dus even wachten op iemand anders die dat wel weet.
 
Leen Strijk

Leen Strijk

05/04/2006 12:38:00
Quote Anchor link
Ja ik verander hem om aan de vaste maten te komen voor thumbnail en gewone foto.

Het script is voor een webwinkel vandaar.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.