Nuevo plato sobre edición gráfica con PHP =)

PiradoIV

Sirve para crear una imagen a partir de un trozo aleatorio de otra, podemos especificarle el tamaño final y algunas cosillas más :)

Ingredientes:
· HTTPd
· PHP con librerías GD

Sintaxis:
http://www.krazytions.com/recortaimagen.php?url=URL&x=X&y=Y&rate=RATE

URL = Metemos la dirección URL de la imagen que queremos recortar.
X = Le decimos cuánto debe medir de ancho la imagen final.
Y = Le decimos cuánto debe medir de alto la imagen final.
RATE = La imagen se reducirá n veces, por ejemplo si se pone un 2, se reducirá a la mitad antes de recortarla.

Código del script:
<?php
header("Content-type: image/jpeg");

if(!$rate) { $rate = 1; }

$source=ImageCreateFromJpeg($url);
$pic=ImageCreateTrueColor($x,$y);

$source_info = GetImageSize($url);
$source_wx = $source_info[0];
$source_wy = $source_info[1];

ImageCopyResampled($pic,$source,0,0,rand(0,$source_wx - $x * $rate),rand(0,$source_wy - $y * $rate),$source_wx / $rate,$source_wy / $rate,$source_wx,$source_wy);

ImageJPEG($pic);
ImageDestroy($pic);
?>

Un saludo,
Pirado IV estuvo akí ;)

RaYMaN

la url no va ^^

editado: era coña eh xDDD

PiradoIV

Tienes que modificar la dirección, por ejemplo en URL pones http://www.media-vida.net/webdesign/logo10.jpg en X pones 200 y en Y pones 100.

editado: pues GRRRRRR para ti xD

Abreu

http://www.krazytions.com/recortaimagen.php?url=http://www.media-vida.net/images/perfil/3736.jpg&x=300&y=100

Sale recortada :S

Editado: joder que fea es la tia que presenta el tiempo en Canal9 :O

konkas

a mi me gustan mas los canelones :\

PiradoIV

Precisamente se trata de recortar imágenes xD igual no le ves una utilidad a primera vista... pero si te pones a pensar puedes sacar muchas =)

Saludos,
Pirado IV estuvo akí ;)

_BoJa_69

Pirado the best :)

PiradoIV

Me imagino que no sería excesivamente complicado hacer un Paint cutre usando HTML/PHP... un día que me aburra probaré aunque claro está que simplemente sería en plan para trastear, sería lentísimo y absurdo pero weno xD

Saludos,
Pirado IV estuvo akí ;)

Abreu

No se por que pero pense que era para redimensionarla... :S

Letto

Aunque no tenga mucho que ver, ¿tienes la url del post aquel con el que generabas gráficas con php?

XeRiC

letto hay unas librerias bastante desarrolladas sobre gd

http://www.aditus.nu/jpgraph/

PiradoIV

No tengo la URL del post, pero tengo el código que genera la gráfica de http://www.vota.info/, copio y pego:

<?php
$im = imagecreate(170,50);

$im_blanco = imagecolorallocate($im,255,255,255);
$im_negro = imagecolorallocate($im,0,0,0);
$im_gris = imagecolorallocate($im,100,100,100);
$im_rejilla = imagecolorallocate($im,90,90,90);
$im_rojo = imagecolorallocate($im,255,0,0);
$im_verde = imagecolorallocate($im,0,255,0);
$im_azul = imagecolorallocate($im,0,0,255);
$im_media = imagecolorallocate($im,150,150,85);

imagefilledrectangle($im,1,1,168,39,$im_gris);

imageline($im,1,10,169,10,$im_rejilla);
imageline($im,1,20,169,20,$im_rejilla);
imageline($im,1,30,169,30,$im_rejilla);

$random1rojo = rand(1,39);
$random2rojo = rand(1,39);
$random3rojo = rand(1,39);
$random4rojo = rand(1,39);
$random5rojo = rand(1,39);
$random1verde = rand(1,39);
$random2verde = rand(1,39);
$random3verde = rand(1,39);
$random4verde = rand(1,39);
$random5verde = rand(1,39);
$random1azul = rand(1,39);
$random2azul = rand(1,39);
$random3azul = rand(1,39);
$random4azul = rand(1,39);
$random5azul = rand(1,39);

imageline($im,1,$random1rojo,42,$random2rojo,$im_rojo);
imageline($im,42,$random2rojo,84,$random3rojo,$im_rojo);
imageline($im,84,$random3rojo,126,$random4rojo,$im_rojo);
imageline($im,126,$random4rojo,168,$random5rojo,$im_rojo);

imageline($im,1,$random1verde,42,$random2verde,$im_verde);
imageline($im,42,$random2verde,84,$random3verde,$im_verde);
imageline($im,84,$random3verde,126,$random4verde,$im_verde);
imageline($im,126,$random4verde,168,$random5verde,$im_verde);

imageline($im,1,$random1azul,42,$random2azul,$im_azul);
imageline($im,42,$random2azul,84,$random3azul,$im_azul);
imageline($im,84,$random3azul,126,$random4azul,$im_azul);
imageline($im,126,$random4azul,168,$random5azul,$im_azul);

imagerectangle($im,0,0,169,40,$im_negro);
imagefilledrectangle($im,18,40,152,50,$im_negro);
imagestring($im,1,25,41,"Estadísticas al instante",$im_blanco);

imagestring($im,3,10,13,"http://www.vota.info/",$im_negro);
imagestring($im,3,10,15,"http://www.vota.info/",$im_negro);
imagestring($im,3,13,13,"http://www.vota.info/",$im_negro);
imagestring($im,3,13,15,"http://www.vota.info/",$im_negro);
imagestring($im,3,12,14,"http://www.vota.info/",$im_blanco);

imagepng($im);
?>

Saludos,
Pirado IV estuvo akí ;)

[editado]
He quitado del código la línea que mostraba la media porque se cargaba la tabla del foro, simplemente era sumar todas las random, dividir entre 15 y sacar la linea.
[/editado]

PiradoIV

#10

Puedes redimensionarla con esta utilidad de la siguiente manera:

X = Ancho original de la imagen / n
Y = Alto original de la imagen / n
RATE = n

¿Por qué funciona?:
Sencillo, el script está preparado para que sea imposible que la imagen original se salga del "lienzo" por muy aleatorio que sea.

Si le especificamos con el RATE que queremos reducirla a la mitad (RATE=2) y sabemos que una imagen mide 1024x768, le decimos que X=512 e Y=384 :)

También decir que se le pueden especificar decimales, pero con un punto en vez de comas... por ejemplo 55.3, 66.2, 12.63, etc :)

Un saludo,
Pirado IV estuvo akí ;)

Letto

Ups hacía días que no me pasaba por aquí, gracias Pirado&Xeric

Usuarios habituales

  • Letto
  • PiradoIV
  • XeRiC
  • Abreu
  • _BoJa_69
  • konkas
  • RaymaN