Welcome, Guest
Username Password: Remember me

Marca De Agua Automática
(1 viewing) (1) Guest
  • Page:
  • 1
  • 2

TOPIC: Marca De Agua Automática

Marca De Agua Automática 2 years, 2 months ago #14624

Buenas !

Que tal todo Joni ?

Bueno pues vengo con un problemilla nuevo, pero que puede ser muy muy interesante.

Se trata de un codigo php que pone a tus imágenes de los artículos y eso automaticamente.

EL codigo es este:



<?php
 
$image = $_GET['i'];
$watermark = "water.png";
 
$im = imagecreatefrompng($watermark);
 
$ext = substr($image, -3);
 
 
if(strtolower($ext) == "gif") {
if (!$im2 = imagecreatefromgif($image)) {
echo "Error opening $image!"; exit;
}
}
elseif(strtolower($ext) == "jpg") {
if (!$im2 = imagecreatefromjpeg($image)) {
echo "Error opening $image!"; exit;
}
}
elseif(strtolower($ext) == "png") {
if (!$im2 = imagecreatefrompng($image)) {
echo "Error opening $image!"; exit;
}
}
else {
exit;
}
 
imagecopy($im2, $im, (imagesx($im2)/2)-(imagesx($im)/2), (imagesy($im2)/2)-(imagesy($im)/2), 0, 0, imagesx($im), imagesy($im));
 
if($_GET[repeat]) {
$waterless = imagesx($im2) - imagesx($im);
$rest = ceil($waterless/imagesx($im)/2);
 
for($n=1; $n<=$rest; $n++) {
imagecopy($im2, $im, ((imagesx($im2)/2)-(imagesx($im)/2))-(imagesx($im)*$n), (imagesy($im2)/2)-(imagesy($im)/2), 0, 0, imagesx($im), imagesy($im));
imagecopy($im2, $im, ((imagesx($im2)/2)-(imagesx($im)/2))+(imagesx($im)*$n), (imagesy($im2)/2)-(imagesy($im)/2), 0, 0, imagesx($im), imagesy($im));
}
}
 
header("Content-Type: image/jpeg");
imagejpeg($im2);
imagedestroy($im);
imagedestroy($im2);
 
?>


El caso esque he probado pero no consigo hacerlo funcionar...

Sabes como puedo poner para que salga automatico en todas las fotos del foro?

Gracias tio
  • Josue_PSM
  • OFFLINE
  • Colaborador
  • Posts: 252
  • Karma: 5
Last Edit: 2 years, 2 months ago by JoniJnm.

Re: Marca De Agua Automática 2 years, 2 months ago #14632

Supongamos que las imágenes las tienes en /images/subidas/

Este código php tiene que ir en esa carpeta (se llamará, por ejemplo, water.php), en ella también tiene que haber un archivo llamado water.png, que será la marca de agua que se pondrá a las imágenes.

Para llamar a la imagen es así:
tuweb.com/images/subidas/water.php?i=mi_imagen.jpg

Para que se cambien todos los enlaces en kunena, en el archivo lib/kunena.parser.php:
//busca
case 'img':
//Hay 3, en uno verás
$tempstr = kunena_htmlspecialchars($between, ENT_QUOTES);
//pues cambia eso por
$tempstr = JURI::root()."images/subidas/water.php?i=".urlencode($between);


Cuéntame si fue bien
  • JoniJnm
  • OFFLINE
  • Administrador
  • Posts: 4297
  • Karma: 148
Last Edit: 2 years, 2 months ago by JoniJnm.
The following user(s) said Thank You: Josue_PSM

Re: Marca De Agua Automática 2 years, 2 months ago #14654

Hola Buenas!

Genial tio funciono

Muchas gracias esto seguro que sirve a mucha gente de ayuda.

Un saludo y cuidate Joni.

Josué
  • Josue_PSM
  • OFFLINE
  • Colaborador
  • Posts: 252
  • Karma: 5

Re: Marca De Agua Automática 2 years ago #15212

hola haber si me podeis ayudar, me gustaria poner una marca de agua pero a las fotos de jomsocial, agradeceria cualquier ayuda un saludo

Re: Marca De Agua Automática 2 years ago #15221

Eso está más chungo, se debería incluir la marca al subir el archivo. He preguntado en forosdelweb una duda, a ver si me la responden y te digo
  • JoniJnm
  • OFFLINE
  • Administrador
  • Posts: 4297
  • Karma: 148
The following user(s) said Thank You: travelmateeee

Re: Marca De Agua Automática 2 years ago #15222

gracias JoniJnm . por ahora solo e conseguido poner la marca de agua en la parte inferior derecha de esta forma, pero me gustaría ponerlo en vertical, derecha o izquierda eso me da igual.

directorio: /home/silverwa/public_html/components/com_community/controllers/photos.php
cImageCreateThumb( $imageFile['tmp_name'] , $thumbPath , $imgType );
 
 
//Remplazar por
 
cImageCreateThumb( $imageFile['tmp_name'] , $thumbPath , $imgType );
 
CFactory::load( 'helpers' , 'image' );
 
$storageWatermark = $imageFile['tmp_name'];
$imageType       = 'image/jpeg';
$faviconWatermark   = JPATH_ROOT . DS . 'images' . DS . 'marca_agua.png';
list($imageWidth,$imageHeight) = getimagesize($storageWatermark);
// 93 y 80 son las dimensiones de la marca de agua
$positionX       = ( $imageWidth  - 93 );
$positionY       = ( $imageHeight - 80 );
cImageAddWaterMark( $storageWatermark , $storageWatermark , $imageType , $faviconWatermark , $positionX, $positionY );



si la forma que tu habías pensado no es esta también dime como lo harías tu, gracias y un saludo
Last Edit: 2 years ago by JoniJnm.

Re: Marca De Agua Automática 2 years ago #15224

Hostia, no sabía que tenían la función cImageAddWaterMark().

Dices que sale abajo derecha y quieres ponerlo arriba derecha?
Pues supongo que con
$positionY = 5; //el 5 para dejar un pequeño margen

Yo había pensado de otra manera, aunque esa es mejor (además pensaba que querías para los avatares, no para las imágenes de las galerías de los usuarios ) De todas maneras la dejo aquí:
//Aunque está para subir los avatares, también vale para las fotos
//Archivo controllers/profile.php
 
//Busca
if(!cImageCreateThumb( $file['tmp_name'] , $storageThumbnail , $file['type'] ))
{
$mainframe->enqueueMessage(JText::sprintf('CC ERROR MOVING UPLOADED FILE' , $storageThumbnail), 'error');
}
 
//Añade después
 
//Marca de agua para la imagen normal
$waterdir = JPATH_ROOT.DS."images".DS."water.png"; //ruta de la marca de agua para las imágenes normales
$water = imagecreatefrompng($waterdir); //cargar marca de agua
$photo = imagecreatefromjpeg($storageImage); //cargar imagen normal
$posX = (imagesx($photo)/2)-(imagesx($water)/2); //para centrar la marca de agua. Si lo quieres a la derecha: $posX = imagesx($photo) - imagesx($water) - 5;
$posY = (imagesy($photo)/2)-(imagesy($water)/2); //para centrar la marca de agua. Si lo quieres arriba: $posY = 5;
imagecopy($photo, $water, $posX, $posY, 0, 0, imagesx($water), imagesy($water)); //añadir marca de agua a la imagen normal
unlink($storageImage); //eliminar imagen normal creada por jomsocial
copy($photo, $storageImage); //copiar la nueva imagen
imagedestroy($photo); //vaciar memoria de la imagen normal
imagedestroy($water); //vaciar memoria de la marca de agua
 
//Marca de agua para la imagen en miniatura
$waterdir = JPATH_ROOT.DS."images".DS."water_mini.png"; //ruta de la marca de agua para las imágenes en miniatura
$water = imagecreatefrompng($waterdir); //cargar marca de agua
$photo = imagecreatefromjpeg($storageThumbnail); //cargar imagen en miniatura
$posX = (imagesx($photo)/2)-(imagesx($water)/2); //para centrar la marca de agua. Si lo quieres a la derecha: $posX = imagesx($photo) - imagesx($water) - 5;
$posY = (imagesy($photo)/2)-(imagesy($water)/2); //para centrar la marca de agua. Si lo quieres arriba: $posY = 5;
imagecopy($photo, $water, $posX, $posY, 0, 0, imagesx($water), imagesy($water)); //añadir marca de agua a la imagen normal
unlink($storageThumbnail); //eliminar imagen en miniatura creada por jomsocial
copy($photo, $storageThumbnail); //copiar la nueva imagen
imagedestroy($photo); //vaciar memoria de la imagen en miatura
imagedestroy($water); //vaciar memoria de la marca de agua

No lo he probado, pero creo que está bien

PD: En el archivo controllers/groups.php también está la función de uploadAvatar, no sé para qué servirá la de groups
  • JoniJnm
  • OFFLINE
  • Administrador
  • Posts: 4297
  • Karma: 148
Last Edit: 2 years ago by JoniJnm.

Re: Marca De Agua Automática 2 years ago #15226

gracias ya lo voy a probar y te comento, otra cosa no sabrás como poner permiso de privacidad en los albunes de fotos de jomsocial? me refiero para q solo quien quieras dar permiso pueda verlas. y gracias nuevamente ehh

Re: Marca De Agua Automática 2 years ago #15228

Habría que hacer una tabla con USER_ID | ALBUMNES_ID_QUE_PUEDE_VER

Qué sería lo predeterminado, poder ver o poder no ver? Es decir, lo normal sería poder ver un album? O quizá hay como bans de IP que no pueden ver nada?

Por cierto, cuál es tu web?
  • JoniJnm
  • OFFLINE
  • Administrador
  • Posts: 4297
  • Karma: 148
  • Page:
  • 1
  • 2
Time to create page: 1.23 seconds