Foros - Stratos

Proyectos => Proyecto dx_lib32 => Mensaje iniciado por: RobiHm en 11 de Diciembre de 2007, 12:04:58 AM

Título: sacando valores argb de un pixel
Publicado por: RobiHm en 11 de Diciembre de 2007, 12:04:58 AM
estoy intentando sacar el color ARGB de una imagen y na me devuelve 0,0,0,0
no entiendo que hago mal

Dim cargb As ARGB
Dim ident As Long
   'cargo imagen
       ident = m_gfx.SURF_Load(App.Path & "\images\imagen.png")
   'lista de pixeles
       ident = m_gfx.SURF_GetPixelData(ident)
    'pido el color de un pixel
       ident = m_gfx.SURF_GetPixel(ident, 1, 1)
    'separo el color
       m_gfx.ARGB_Get ident, cargb

       Call m_gfx.DRAW_Text(fnt_System, CStr(cargb.Alpha & "-" & cargb.Blue & "-" & cargb.Green & "-" & cargb.Red & "-"), 0, 0 + 35, 1, m_gfx.ARGB_Set(255, 0, 0, 0), Align_Left)


muestra 0,0,0,0
Título: sacando valores argb de un pixel
Publicado por: [EX3] en 11 de Diciembre de 2007, 04:49:38 AM
Directamente pasa de las funciones de lectura/escritura de pixeles en superficies, en principio y en la extraña situacion que me sea necesario, estan eliminadas en la proxima release por que en meses no he logrado solucionar el problema (no obtengo los valores de los pixeles correctamente). Otra de las razones de por que no voy a solucionarlo en un principio es, por un lado, la implementacion en Visual Basic es lenta con ganas, lo que elimina de calle la posibilidad de usar este camino para modificaciones en tiempo real o en segundo plano de superifices o texturas (que es lo que buscaba en su momento), y por otro lado, de una superifice o textura solo obtendras los componentes RGB dado que Alpha siempre sera 255, por lo que este (http://www.stratos-ad.com/forums3/viewtopic.php?t=5120) ejemplo via GDI te resultara mas practico y rapido si lo que buscas es leer pixeles para un mapa de durezas o similar (los valores seran RGB a secas). Si se trata de algo mas concreto como edicion de pixeles o similar de momento no te sera posible con la libreria :?

Salu2...

EDIT: Acabo de leer el otro post, ya se que buscas hacer y de momento me temo que no te sera posible :( Intentare echarle un ojo a ver si soluciono el problema pero hasta la fecha no he logrado resultados positivos (y tampoco me he centrado demasiado en ello por que no lo preciso para mi juego) lo que si te digo es que de poderse hacer tendrias que hacer copia de la textura en memoria, pasarla a superficie, extraer la lista de pixeles, aplicar los cambios a los pixeles, y devolver la superficie a la textura, todo esto o segundo plano o en tiempo de carga por que en tiempo real te va a tumbar todo el programa en lo que a fps se refiere.
Título: sacando valores argb de un pixel
Publicado por: RobiHm en 11 de Diciembre de 2007, 12:46:46 PM
Citar
EDIT: Acabo de leer el otro post, ya se que buscas hacer y de momento me temo que no te sera posible :( Intentare echarle un ojo a ver si soluciono el problema pero hasta la fecha no he logrado resultados positivos (y tampoco me he centrado demasiado en ello por que no lo preciso para mi juego) lo que si te digo es que de poderse hacer tendrias que hacer copia de la textura en memoria, pasarla a superficie, extraer la lista de pixeles, aplicar los cambios a los pixeles, y devolver la superficie a la textura, todo esto o segundo plano o en tiempo de carga por que en tiempo real te va a tumbar todo el programa en lo que a fps se refiere.

tenía pensado hacerlo al cargar, además con figuritas de 64x64 tampoco tardaría mucho, gracias por la info veré como me las arreglo