elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  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 3,836 veces)
multi-media asdfg

Desconectado Desconectado

Mensajes: 26


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

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: 26


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

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


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


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

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

Te vendería mi talento por poder dormir tranquilo.
multi-media asdfg

Desconectado Desconectado

Mensajes: 26


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

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: 26


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

Alguna idea ?

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

Código
  1. <?php
  2.  
  3. header( "Content-type: image/gif" );
  4.  
  5. $imagen = imagecreatefrompng('tras.png');
  6.  
  7.  
  8. $morado = array( 'r' => 186, 'g' => 0, 'b' => 255 );
  9. $amarillo = array( 'r' => 255, 'g' => 220, 'b' => 0 );
  10.  
  11. $pasos = 2000;
  12.  
  13. $incr_r = ( $amarillo['r'] - $morado['r'] ) / $pasos;
  14. $incr_g = ( $amarillo['g'] - $morado['g'] ) / $pasos;
  15. $incr_b = ( $amarillo['b'] - $morado['b'] ) / $pasos;
  16.  
  17. // El centro de la imagen será el del gradiente
  18. $cx = imagesx( $imagen ) / 3;
  19. $cy = imagesy( $imagen ) / 3;
  20. = imagesx( $imagen ) / 2;
  21. $k = imagesy( $imagen ) / 3;
  22.  
  23. // Ancho y alto del gradiente inicial
  24. $ancho = 240;
  25. $alto = 140;
  26.  
  27. // Valores de reducción del elipse
  28. $incr_x = $ancho / $pasos;
  29. $incr_y = $alto / $pasos;
  30.  
  31. $r = $morado['r'];
  32. $g = $morado['g'];
  33. $b = $morado['b'];
  34.  
  35. // Dibujamos las elipses según los pasos
  36. for( $i = 10; $i < $pasos; $i++ ){
  37. $color = imagecolorallocate( $imagen, $r, $g, $b );
  38. imagefilledellipse( $imagen, $cx, $cy, $ancho, $alto, $color );
  39. imagefilledellipse( $imagen,, $k, $ancho, $alto, $color );
  40.  
  41. $r += $incr_r;
  42. $g += $incr_g;
  43. $b += $incr_b;
  44. // Reducimos el tamaño de la siguiente elipse
  45. $ancho -= $incr_x;
  46. $alto -= $incr_y;
  47. }
  48.  
  49. imagegif( $imagen );
  50.  
  51. imagedestroy( $imagen );
  52.  
  53. ?>
En línea

bomba1990


Desconectado Desconectado

Mensajes: 395



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

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: 395



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

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
  1. <?php
  2. $colores=255;
  3. $saltos=1;
  4. $lineas=1;
  5.  
  6.  
  7. $repeticiones=$colores/$saltos;
  8. $imagen = imagecreatetruecolor(100,(5*$lineas*$repeticiones));
  9. imagefill($imagen,0,0,imagecolorallocatealpha($imagen,255,255,255,0));
  10. //imagefilledrectangle($imagen, 4, 4, 50, 25, imagecolorallocatealpha($imagen,10,255,255,0));
  11. $color=array(
  12. 'image'=>'',
  13. 'a'=>1,
  14. '1'=>$colores,
  15. '2'=>0,
  16. '3'=>0
  17. );
  18. for($z=0;$z<=5;$z++){
  19. for($i=0;$i<255;$i+=$saltos){
  20.  
  21. $x=$i*$repeticiones/$colores;
  22. if( $z%2==0 ){
  23. $a=($color['a']==3)?1:$color['a']+1;
  24. $color[$a]=$i;
  25. }else{
  26. $color[$color['a']]=$colores-$i;
  27. }
  28.  
  29. if($z%2==1 && $i>=254 && $color['a'] < 3){$color['a']+=1;}
  30. elseif($z%2==1 && $i==255 && $color['a']==3 ){$color['a']=1;}
  31.  
  32. $color['image']=imagecolorallocate($imagen,$color['1'],$color['2'],$color['3']);
  33. imagefilledrectangle($imagen,0,($z*$lineas*$repeticiones)+$x,100,($z*$lineas*$repeticiones)+$x+$lineas,$color['image']);
  34. }
  35. }
  36.  
  37. header( "Content-type: image/png" );
  38. imagepng( $imagen );
  39.  
  40. imagedestroy( $imagen );
  41.  
  42. ?>
  43.  

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: 26


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

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
Como utilizo el siguiente codigo?
Java
DrUbLiC 5 3,771 Último mensaje 25 Marzo 2008, 23:18 pm
por DrUbLiC
Como hago lo siguiente..
PHP
elpirata15hd 7 5,177 Último mensaje 1 Mayo 2011, 15:58 pm
por merolhack
Duda sobre realizar o no realizar overclocking en mi processador.
Hardware
MonzterKuki. 4 6,395 Último mensaje 3 Octubre 2011, 22:19 pm
por sagrat
Como poner un BP en la siguiente instrucción con OllyScript? « 1 2 »
Ingeniería Inversa
.:UND3R:. 10 5,258 Último mensaje 2 Septiembre 2011, 23:59 pm
por Tinkipinki
¿Como se hace en excel lo siguiente?
Dudas Generales
Fox_Neo 4 3,368 Último mensaje 22 Julio 2013, 18:35 pm
por Fox_Neo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines