elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:11  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Como realizar lo siguiente con GD
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como realizar lo siguiente con GD  (Leído 1,181 veces)
multi-media asdfg

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Como realizar lo siguiente con GD
« en: 6 Agosto 2011, 04:49 »

Hola,

Quiero hacer lo siguiente con GD:




Básicamente seria establecer una serie de puntos y de estos que salga el color como lo hace en la imagen, pero no se con que función de GD hacer esto y mucho menos como asociarlo a una regla de colores.

Alguien me puede aconsejar ?


En línea
multi-media asdfg

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Como realizar lo siguiente con GD
« Respuesta #1 en: 8 Agosto 2011, 23:01 »

Otra pregunta sobre el tema seria como hacer un degradado entre dos o mas puntos.


En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Como realizar lo siguiente con GD
« Respuesta #2 en: 9 Agosto 2011, 00:51 »

:http://www.digitalestudio.es/programacion/dibujar-degradados-con-php-y-gd/
En línea

---
multi-media asdfg

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Como realizar lo siguiente con GD
« Respuesta #3 en: 10 Agosto 2011, 13:57 »

No consigo poner el funcionamiento ni el código que proponen en la web.

El caso es, si no hay manera sencilla de hacer dos elipses y entre estas crear el degradado...

Esto es lo que yo llego a hacer... superponer dos elipses, pero queda ese corte.



Por eso lo que decia antes degradado entre las dos elipses y no superponiéndolo.

Es posible ?
En línea
multi-media asdfg

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Como realizar lo siguiente con GD
« Respuesta #4 en: 13 Agosto 2011, 14:10 »

Alguna idea ?

Dejo el código que he usado en la imagen anterior:

Código
<?php
 
header( "Content-type: image/gif" );
 
$imagen = imagecreatefrompng('tras.png');
 
 
$morado = array( 'r' => 186, 'g' => 0, 'b' => 255 );
$amarillo = array( 'r' => 255, 'g' => 220, 'b' => 0 );
 
$pasos = 2000;
 
$incr_r = ( $amarillo['r'] - $morado['r'] ) / $pasos;
$incr_g = ( $amarillo['g'] - $morado['g'] ) / $pasos;
$incr_b = ( $amarillo['b'] - $morado['b'] ) / $pasos;
 
// El centro de la imagen será el del gradiente
$cx = imagesx( $imagen ) / 3;
$cy = imagesy( $imagen ) / 3;
= imagesx( $imagen ) / 2;
$k = imagesy( $imagen ) / 3;
 
// Ancho y alto del gradiente inicial
$ancho = 240;
$alto = 140;
 
// Valores de reducción del elipse
$incr_x = $ancho / $pasos;
$incr_y = $alto / $pasos;
 
$r = $morado['r'];
$g = $morado['g'];
$b = $morado['b'];
 
// Dibujamos las elipses según los pasos
for( $i = 10; $i < $pasos; $i++ ){
$color = imagecolorallocate( $imagen, $r, $g, $b );
imagefilledellipse( $imagen, $cx, $cy, $ancho, $alto, $color );
imagefilledellipse( $imagen,, $k, $ancho, $alto, $color );
 
$r += $incr_r;
$g += $incr_g;
$b += $incr_b;
// Reducimos el tamaño de la siguiente elipse
$ancho -= $incr_x;
$alto -= $incr_y;
}
 
imagegif( $imagen );
 
imagedestroy( $imagen );
 
?>
En línea
bomba1990


Desconectado Desconectado

Mensajes: 383



Ver Perfil WWW
Re: Como realizar lo siguiente con GD
« Respuesta #5 en: 14 Agosto 2011, 01:59 »

hola, y si usas colores alpha y le ds un poco de opacidad??

http://php.net/manual/es/function.imagecolorallocatealpha.php

en el modo por defecto el hace una mezcla de colores interesante qu ete podria servir.
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
bomba1990


Desconectado Desconectado

Mensajes: 383



Ver Perfil WWW
Re: Como realizar lo siguiente con GD
« Respuesta #6 en: 14 Agosto 2011, 06:38 »

Sobre la barra de colores aqui te dejo un ejemplo que hice ahorita rapidamente es vertical no horizontal, despues lo mejorare, pero quizas te puede servir:

Código
<?php 
$colores=255;
$saltos=1;
$lineas=1;
 
 
$repeticiones=$colores/$saltos;
$imagen = imagecreatetruecolor(100,(5*$lineas*$repeticiones));
imagefill($imagen,0,0,imagecolorallocatealpha($imagen,255,255,255,0));
//imagefilledrectangle($imagen, 4, 4, 50, 25, imagecolorallocatealpha($imagen,10,255,255,0));
$color=array(
'image'=>'',
'a'=>1,
'1'=>$colores,
'2'=>0,
'3'=>0
);
for($z=0;$z<=5;$z++){
for($i=0;$i<255;$i+=$saltos){
 
$x=$i*$repeticiones/$colores;
if( $z%2==0 ){
$a=($color['a']==3)?1:$color['a']+1;
$color[$a]=$i;
}else{
$color[$color['a']]=$colores-$i;
}
 
if($z%2==1 && $i>=254 && $color['a'] < 3){$color['a']+=1;}
elseif($z%2==1 && $i==255 && $color['a']==3 ){$color['a']=1;}
 
$color['image']=imagecolorallocate($imagen,$color['1'],$color['2'],$color['3']);
imagefilledrectangle($imagen,0,($z*$lineas*$repeticiones)+$x,100,($z*$lineas*$repeticiones)+$x+$lineas,$color['image']);
}
}
 
header( "Content-type: image/png" );
imagepng( $imagen );
 
imagedestroy( $imagen );
 
?>
 

Resultado:



Para la imagen del mapa, seria bueno que tuvieras una vacia(sin colores), para hacer pruebas ensima de ella.
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
multi-media asdfg

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Como realizar lo siguiente con GD
« Respuesta #7 en: 17 Agosto 2011, 16:32 »

Muchas gracias bomba1990.

Últimamente he estado pensando que quizás sea mejor hacer los degradados con polígonos en lugar de elipses. 
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Cómo se resuelve lo siguiente?
Dudas Generales
vidartone 1 407 Último mensaje 3 Julio 2007, 15:20
por Red Mx
Como utilizo el siguiente codigo?
Java
DrUbLiC 5 1,361 Último mensaje 25 Marzo 2008, 23:18
por DrUbLiC
Como hago lo siguiente..
PHP
elpirata15hd 7 1,414 Último mensaje 1 Mayo 2011, 15:58
por merolhack
Duda sobre realizar o no realizar overclocking en mi processador.
Overclocking y Refrigeración
MonzterKuki. 4 2,297 Último mensaje 3 Octubre 2011, 22:19
por sagrat
Como poner un BP en la siguiente instrucción con OllyScript?
Ingeniería Inversa
.:UND3R:. 10 830 Último mensaje 2 Septiembre 2011, 23:59
por Tinkipinki
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines