
Subida de imagenes con marca de agua inc.
Publicado por Alfredo (1 intervención) el 24/09/2014 14:59:03
Buenas tardes a todos! soy nuevo en la web del programador, estuve Googleando por varias páginas web para poder documentar algo de la idea que tengo:
Quiero hacer un gestor de subida de imágenes, que no supere 300KB y que sólo permita imágenes con la extensión jpg, que una vez subida la imagen, querría que automaticamente hiciera una marca de agua con otra imagen.
La cuestión es que la línea de código de la marca de agua "marcadeagua($origen, $marcadeagua, $destino_temporal, 100);" me salta un error que no ha sido declarado.
Estoy aprendiendo sobre el lenguaje de PHP y no se como solucionarlo, si alguien me pudiera ayudar se lo agradecería, gracias.
Quiero hacer un gestor de subida de imágenes, que no supere 300KB y que sólo permita imágenes con la extensión jpg, que una vez subida la imagen, querría que automaticamente hiciera una marca de agua con otra imagen.
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
<?php if ((isset($_POST["enviado"])) && ($_POST["enviado"] == "form1"))
{
//Si el archivo es superior a 300KB salta el mensaje
if($_FILES['userfile']['size'] > 300000)
{
echo "<script type=\"text/javascript\">alert(\"No se pueden subir fotos superiores a 300KB\");</script>";
echo "<script type=\"text/javascript\">history.back();</script>";
}
//Si el archivo no tiene extensión jpg salta el mensaje
elseif( $_FILES['userfile']['type'] != "image/jpeg")
{
echo "<script type=\"text/javascript\">alert(\"Sólo admite imagenes con extensión JPG ó JPEG.\"); </script>";
echo "<script type=\"text/javascript\">history.back();</script>";
}
else{
$origen = date('G.i_dmy_').$_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'], "../../../img/galeria/modelos/".$origen);
?>
//Escribe en el select del formulario el nombre de la imagen y cierra la ventana emergente
<script>
opener.document.form1.<?php echo $_POST["nombrecampo"]; ?>.value="<?php echo $origen; ?>";
self.close();
</script>
<?php
}
}
else
{?>
<form action="subirimagen.php" method="post" enctype="multipart/form-data" id="form1" name="form1">
<p>
<input name="userfile" type="file" />
</p>
<p>
<input type="submit" name="button" id="button" value="Subir Imagen" />
<input name="nombrecampo" type="hidden" value="<?php echo $_GET["campo"]; ?>" />
<input type="hidden" name="enviado" value="form1" />
</form>
<?php }?>
<?php
//AQUI EMPIEZA LA MARCA DE AGUA
$marcadeagua="marca.png";
$destino="copyright_" .$origen;
$destino_temporal=tempnam("tmp/","tmp");
marcadeagua($origen, $marcadeagua, $destino_temporal, 100);
// guardamos la imagen
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);
function marcadeagua($img_original, $img_marcadeagua, $img_nueva, $calidad)
{
// obtener datos de la fotografia
$info_original = getimagesize($img_original);
$anchura_original = $info_original[0];
$altura_original = $info_original[1];
// obtener datos de la "marca de agua"
$info_marcadeagua = getimagesize($img_marcadeagua);
$anchura_marcadeagua = $info_marcadeagua[0];
$altura_marcadeagua = $info_marcadeagua[1];
// calcular la posición donde debe copiarse la "marca de agua" en la fotografia
$horizmargen = ($anchura_original - $anchura_marcadeagua)/2;
$vertmargen = ($altura_original - $altura_marcadeagua)/1.5;
// crear imagen desde el original
$original = ImageCreateFromJPEG($img_original);
ImageAlphaBlending($original, true);
// crear nueva imagen desde la marca de agua
$marcadeagua = ImageCreateFromPNG($img_marcadeagua);
// copiar la "marca de agua" en la fotografia
ImageCopy($original, $marcadeagua, $horizmargen, $vertmargen, 0, 0, $anchura_marcadeagua, $altura_marcadeagua);
// guardar la nueva imagen
ImageJPEG($original, $img_nueva, $calidad);
// cerrar las imágenes
ImageDestroy($original);
ImageDestroy($marcadeagua);
}
?>
La cuestión es que la línea de código de la marca de agua "marcadeagua($origen, $marcadeagua, $destino_temporal, 100);" me salta un error que no ha sido declarado.
Estoy aprendiendo sobre el lenguaje de PHP y no se como solucionarlo, si alguien me pudiera ayudar se lo agradecería, gracias.
Valora esta pregunta


0