Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Como Usar Image.data
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Usar Image.data 
 
Hola a todos.
Como saben gambas tiene una función para manejar imágenes
si por ejemplo definimos
Dim img As Image

Luego podemos hacer
Print img.H
Print img.W
etc.

Pero existe también img.Data ¿Alguien sabe si es posible usar esto para leer metadatos d ela imagen? me interesa la fecha de captura la marca d ela camara el modelo etc. los datos que da exiftool.
si pongo
Print img.Data

imprime en la consola un texto algo así como 6XDC9Z196010
¿Alguin sabe como se usa .Data?
Saludos
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Image.data 
 
tincho escribió: [Ver mensaje]

si pongo
Print img.Data

imprime en la consola un texto algo así como 6XDC9Z196010
¿Alguin sabe como se usa .Data?

Hola tincho,
el numero hexadecimal, que tu ves, rapresenta la dirección de memoria donde están almacenados los datos (es decir: cada byte de cada pixel) de la imagen.
Por eso la propriedad ".Data" del objeto Image es una variable de tipo Puntero.
Tu puedes gestionar esta dirección de memoria solo con las funciones de desreferencia - Byte@(), Shot@(), et... - de Gambas:
   http://gambaswiki.org/wiki/cat/externfunc

o usando Memory Stream
   http://gambaswiki.org/wiki/lang/memory


Unos ejemplos:

   https://foro.gambas-es.org/show_post.php?p=23672
   https://www.gambas-it.org/wiki/inde...i_Memory_Stream
   https://www.gambas-it.org/wiki/inde...referenziazione


Vamos a ver un breve ejemplo leyendo con la función de desreferencia "Byte@( )"  en la propiedad ".Data" de una siiimple imagen de 2x2 pixel:
Public Sub Button1_Click()

  Dim im As Image
  Dim i As Integer
  
' Crea una imagen de 2x2 pixel todos rojos:
  im = New Image(2, 2, Color.Red, gb.Standard)

' Lee cada byte de cada pixel de la imagen:
  For i = 0 To (im.Pixels.Count * (im.Depth / 8)) - 1
    If (i Mod CInt(im.Depth / 8) == 0) Then Print "\n---Pixel---"
    Print i, Hex(Byte@(im.Data + i), 2)
  Next

End

 



 
última edición por vuott el Jueves, 26 Diciembre 2019, 02:45; editado 4 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Image.data 
 
Perfecto Vuott.
Si comprendo bien, en la memoria están guardados todos los bytes de la imagen (incluidos los de los metadatos, que no son pixeles.)
Se trataría como un archivo binario que cargas entonces.
.Data entonces no es lo que estoy buscando.
Soluciono el tema con Shell, jhead  y exiftool, y acelere el código optimizando las consultas sql.
Dejo para mas adelante la optimización de metadatos.
Gracias
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Image.data 
 
tincho escribió: [Ver mensaje]

(incluidos los de los metadatos)

Uhmmm... no creo, no creo.
 



 
última edición por vuott el Jueves, 26 Diciembre 2019, 15:04; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Usar Gb.report? willicab Controles/Librerías/Componentes 10 Miercoles, 24 Marzo 2010, 15:25 Ver último mensaje
nrcefe
No hay nuevos mensajes Como Usar ProgressBar aristicol Controles/Librerías/Componentes 8 Martes, 26 Abril 2011, 18:40 Ver último mensaje
skaterleopoldo12
No hay nuevos mensajes Como Usar El Timer mesm82 Controles/Librerías/Componentes 6 Martes, 02 Julio 2013, 20:50 Ver último mensaje
shordi
No hay nuevos mensajes Como Usar El Radiobutoon Angel the miau General 4 Miercoles, 09 Octobre 2019, 14:31 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron