Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





sacando valores argb de un pixel

Iniciado por RobiHm, 11 de Diciembre de 2007, 12:04:58 AM

« anterior - próximo »

RobiHm

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
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox

[EX3]

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 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.
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

RobiHm

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
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.