Problema de transparencia al cargar archivo PNG
Publicado por Julian Costa (4 intervenciones) el 24/08/2018 01:41:32
Buenas a todos!
El problema que tengo es que cuando cargo una imagen .PNG con php a mysql pierde transparencia y aparece el fondo negro. Espero ayuda muchas gracias!!
Aquí les dejo el código:
El problema que tengo es que cuando cargo una imagen .PNG con php a mysql pierde transparencia y aparece el fondo negro. Espero ayuda muchas gracias!!
Aquí les dejo el código:
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
$info = new SplFileInfo($_FILES['image']['name']);
$extension = pathinfo($info->getFilename(), PATHINFO_EXTENSION);
if($extension == "png"){
if (isset($_FILES['image']) && $_FILES['image']['tmp_name']!=''){
$rtOriginal=$_FILES['image']['tmp_name'];
$original = imagecreatefrompng($rtOriginal);
$max_ancho = 600; $max_alto = 400;
list($ancho,$alto)=getimagesize($rtOriginal);
$x_ratio = $max_ancho / $ancho;
$y_ratio = $max_alto / $alto;
if(($ancho <= $max_ancho) && ($alto <= $max_alto) ){
$ancho_final = $ancho;
$alto_final = $alto;
}
else if(($x_ratio * $alto) < $max_alto){
$alto_final = ceil($x_ratio * $alto);
$ancho_final = $max_ancho;
}
else {
$ancho_final = ceil($y_ratio * $ancho);
$alto_final = $max_alto;
}
$lienzo=imagecreatetruecolor($ancho_final,$alto_final);
imagecopyresampled($lienzo,$original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);
imagedestroy($original);
imagepng($lienzo,"../images/".$_FILES['image']['name']);
$rutaDestino="../images/".$_FILES['image']['name'];
move_uploaded_file($lienzo,$rutaDestino);
}
}elseif ($extension == "jpg") {
if (isset($_FILES['image']) && $_FILES['image']['tmp_name']!=''){
$rtOriginal=$_FILES['image']['tmp_name'];
$original = imagecreatefromjpeg($rtOriginal);
$max_ancho = 600; $max_alto = 400;
list($ancho,$alto)=getimagesize($rtOriginal);
$x_ratio = $max_ancho / $ancho;
$y_ratio = $max_alto / $alto;
if(($ancho <= $max_ancho) && ($alto <= $max_alto) ){
$ancho_final = $ancho;
$alto_final = $alto;
}
else if(($x_ratio * $alto) < $max_alto){
$alto_final = ceil($x_ratio * $alto);
$ancho_final = $max_ancho;
}
else {
$ancho_final = ceil($y_ratio * $ancho);
$alto_final = $max_alto;
}
$lienzo=imagecreatetruecolor($ancho_final,$alto_final);
imagecopyresampled($lienzo,$original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);
imagedestroy($original);
imagejpeg($lienzo,"../images/".$_FILES['image']['name']);
$rutaDestino="../images/".$_FILES['image']['name'];
move_uploaded_file($lienzo,$rutaDestino);
}
}
Valora esta pregunta
0