Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2011
acalderonr acalderonr is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico, DF
Posts: 33
Poder: 0
acalderonr Va por buen camino
Escribir un Buffer en formato BMP a Disco

Hola a todos los programadores en Delphi,

Estoy explorando el funcionamiento de VeCAD para incluir edición vectorial de dibujos en mi aplicación. Todo va bien, genero dibujos y los puedo guardar sin problema, el detalle está en generar un BMP utilizando sus funciones.

Hay una función llamada CadExtractImage ( archivo, apuntador )
Para lo que debo reservar un espacio de 250,000 bytes en un apuntador para almacenar la imagen en formato BMP.

El apuntador pMem reserva el espacio sin problema, se le pasa el pMem a la función y regresa un entero de la cantidad de bytes escritos en el buffer reservado y ya, eso es todo. Técnicamente ya tengo en ese espacio mi archivo en formato BMP, pero ... ahora como lo guardo en disco??

Como se guarda en un archivo a partir de un apuntador y el espacio utilizado en memoria? alguien podrá orientarme?

Gracias.
Responder Con Cita
  #2  
Antiguo 13-09-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Ya que estamos en el foro API, contestaré con la API:

Código Delphi [-]
var
   F: Cardinal;
begin
   F:= CreateFile('file.bmp', GENERIC_WRITE, 0, nil, OPEN_ALWAYS, FILE_FLAG_WRITE_THROUGH, 0);
   _lwrite(F, BUFFER, SIZEBUFFER);
   _lclose(F);


Saludos.
Responder Con Cita
  #3  
Antiguo 13-09-2011
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 16
LoPiTaL Va por buen camino
Hola. Una opinión personal: a mí no me gusta nunca utilizar las funciones de IO de archivos directamente. Me parecen demasaido bajo nivel y a veces algo complicadas.
Me gusta más bien utilizar los streams para guardar / cargar de disco, por ejemplo con un TMemoryStream o con un TFileStream, y usando sus métodos WriteBuffer / ReadBuffer para escribir datos en ellos y SaveToFile / LoadFromFile para trabajar con los archivos.

Un saludo,
LoPiTaL
Responder Con Cita
  #4  
Antiguo 13-09-2011
acalderonr acalderonr is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico, DF
Posts: 33
Poder: 0
acalderonr Va por buen camino
Gracias escafandra y LoPital, voy a hacer pruebas esta tarde.

Buen día.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con formato de disco y Firebird marcoszorrilla Firebird e Interbase 13 21-10-2010 06:59:33
Editar un buffer JoseFco OOP 42 13-10-2008 16:17:00
ERROR:ShLink.GetPath(Buffer, Sizeof(Buffer), Data, SLGP_UNCPRIORITY) Mav Varios 2 26-05-2008 21:31:49
Imagen de disco duro de sistema a un disco externo usb Wonni Windows 20 05-06-2007 13:11:55
Bitmap buffer fitolanga Gráficos 4 21-04-2007 15:58:29


La franja horaria es GMT +2. Ahora son las 19:54:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi