Foros del Web » Programando para Internet » PHP »

jpg a escala de grises?

Estas en el tema de jpg a escala de grises? en el foro de PHP en Foros del Web. Hola gente del foro Ahora que ya logré instalar, PHP como modulo de apache, me sente frente a la PC y me propuse armar un ...
  #1 (permalink)  
Antiguo 08/10/2003, 18:45
 
Fecha de Ingreso: abril-2002
Mensajes: 30
Antigüedad: 22 años
Puntos: 0
jpg a escala de grises?

Hola gente del foro

Ahora que ya logré instalar, PHP como modulo de apache, me sente frente a la PC y me propuse armar un funcion para crear thumbnails.

Ya se que dirán que hay miles listas para descargar y usar, pero como mi intencion es aprender, fui por ello.

Aparte debo reconocer que esto fue una de las cosas que le atrajo a PHP, poder manipular imagenes sin necesidad de componentes extras, como me pasaba con ASP.

Descargué la ultima versión del manual de PHP y leí todas las Funciones para Imagenes y arme mi funcion para crear thumbnails.

Pero se me ocurrio que tambien podria tener una opcion, para crear el thumbnail en escala de grises.

Se puede?
Hay alguna función que permita pasar una imagen a escala de grises?

Intenté con la función imageCopyMergeGray, pero lo que consigo es un efecto como si a mi imagen original le pusiera con photoshop una capa negra con alpha al 70%


Un saludo.
Taka
  #2 (permalink)  
Antiguo 08/10/2003, 21:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Aparte debo reconocer que esto fue una de las cosas que le atrajo a PHP, poder manipular imagenes sin necesidad de componentes extras, como me pasaba con ASP.
En PHP .. el soporte para manipulación de imagenes es una "extensión" .. Anque es una de las extensiones más comunes para PHP y casi todo servicio de hosting la incorpora (es gratuita) .. no te confies si en algún servicio de hosting no te van tus scritps que uses esas funciones de esas librerias.

-------

Con respecto a tu problema ..

No has puesto el código que usas, .. pero dicha función tiene un parámetro (el último) para ajustar el grado de "mezcla" (alpha) entre ambas imagenes usadas .. Tambien habría que ver que imagen usas como "mascara" ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 08/10/2003, 21:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Viendo php.net ..

Fijate en la función:
http://www.php.net/imagecolorallocate

En los comentarios de los usuarios se dan várias alternativas para obtener tu "escala de grises" de tu imagen ..

También tienes alternativas usando:

imagecolorset()
http://www.php.net/manual/es/function.imagecolorset.php

(lo que no sé si acepta imagenes "true color" .. )

En fin .. .. que tienes que entretenerte en php.net leyendo las numerosas funciones de GD que hay .. y.. sobre todo los comentarios de los usuarios de dichas funciones que traen ejemplos (más que los de la própia documentación oficial).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 11/10/2003, 15:22
 
Fecha de Ingreso: abril-2002
Mensajes: 30
Antigüedad: 22 años
Puntos: 0
Gracias Cluster

usé como guía la funcion que aparece en function.imagecolorset
Código PHP:
##############################
heres a simple function to greyscale an image...

function 
imagecolorgrey( &$img ) {
 for( 
$i=0$i<imagecolorstotal$img ); $i++ ) {
  
$c ImageColorsForIndex$img$i );
  
$t = ($c["red"]+$c["green"]+$c["blue"])/3;
  
imagecolorset$img$i$t$t$t );    
 }

############################## 

Efectivamente esta función no funciona si la imagen fue creada con color verdadero usando imageCreateTrueColor ya que imageColorsTotal devuelve 0 y entonces no es tranformado ningun color.

Pero para evitar esto, si quiero crear la imagen en escala de grises, solo tengo que crear la imagen con imageCreate.

Cluster gracias por la ayuda
Taka
  #5 (permalink)  
Antiguo 13/10/2003, 19:23
 
Fecha de Ingreso: abril-2002
Mensajes: 30
Antigüedad: 22 años
Puntos: 0
una cosa que me olvide de comentar (por las dudas) es que al usar solo imageCreate le baja la calidad a la imagen, por lo que no termina siendo un perfecto jpg en escala de grises.

pero es bastante aceptable

saludos taka
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:05.