Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
Unhappy Alguien me ayuda con los streams?

Saludos,primero que nada agradezco cada día que me ayudan, lo que pasa es que yo que yo adquiero imágenes por medio del escáner, pero no se cómo meterlos a un formato stream por así decir, alguien me pudiera recomendar algún tutorial para conocer mejor los streams en Delphi, porfavor, ó pudiera ser còmo pasar un Tbitmpa a un Tstream
Responder Con Cita
  #2  
Antiguo 22-04-2008
santus santus is offline
Miembro
 
Registrado: ene 2006
Posts: 130
Poder: 19
santus Va por buen camino
Holas. Mira, ami tambien me tocó hacer algo parecido. Es cuestion de ver exactamente que quieres hacer con un stream.

Aca en el foro con el buscardor puedes encontrar un monton de soluciones.

Te dejo lo que hice yo. Capaz que te puede ayudar. Tome la ayuda de Seoane en que se trataba de como guardar una imagen. Aqui el Link.

Luego lo cambie por esto:

Código Delphi [-]
 
uses jpeg;//procedure Capturar(Filename: string; Panel: TPanel);funcion Capturar(Filename: string; Panel: TPanel): TStream;var  SrcWindow: THandle;  SrcDC: HDC;  Bitmap: TBitmap;  Jpg: TJPEGImage;  stream : Tstream;begin  SrcWindow:= Panel.Handle;  if SrcWindow <> 0 then  begin    SrcDC:= GetDC(SrcWindow);    if SrcDC <> 0 then    begin      Bitmap:= TBitmap.Create;      Jpg:= TJPEGImage.Create;      stream := TMemoryStream.Create;      try        Bitmap.Width:= Panel.Width;        Bitmap.Height:= Panel.Height;        BitBlt(Bitmap.Canvas.Handle,0,0,Bitmap.Width,Bitmap.Height,SrcDC,0,0,SRCCOPY);        Jpg.CompressionQuality:= 60;        Jpg.Assign(Bitmap);        //Jpg.SaveToFile(Filename); Aqui lo comento y en vez de guardarlo a un archivo lo guardo a un stream.        Jpg.SaveToStream(stream);      finally        Bitmap.Free;        Jpg.Free;        ReleaseDC(SrcWindow,SrcDC);      end;    end;  end;end;// Ejemplo de como usar la funcionMiStream:=Capturar('c:\1.jpg',Panel1);

Y listo. Ya tienes la imagen en un stream. Despues si lo quieres guardar en una base de datos, tal vez quieras ver este link. El maestro Delphi.com.ar respondio muchisimos mensajes sobre stream. Capáz que él te podra dar una mano mas en profundidad.

Espero haberte sido de ayuda. No siempre la pego respondiendo mensajitos, pero bue.. son ideas.

Muchos saluditos.
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates.
Responder Con Cita
  #3  
Antiguo 22-04-2008
santus santus is offline
Miembro
 
Registrado: ene 2006
Posts: 130
Poder: 19
santus Va por buen camino
Lo copio de nuevo porque nose que paso:


Código Delphi [-]
uses jpeg;

//procedure Capturar(Filename: string; Panel: TPanel);
funcion Capturar(Filename: string; Panel: TPanel): TStream;
var SrcWindow: THandle;
SrcDC: HDC;
Bitmap: TBitmap;
Jpg: TJPEGImage;
stream : Tstream;
begin
SrcWindow:= Panel.Handle;
if SrcWindow <> 0 then
begin
SrcDC:= GetDC(SrcWindow);
if SrcDC <> 0 then
begin
Bitmap:= TBitmap.Create;
Jpg:= TJPEGImage.Create;
stream := TMemoryStream.Create;
try
Bitmap.Width:= Panel.Width;
Bitmap.Height:= Panel.Height;
BitBlt(Bitmap.Canvas.Handle,0,0,Bitmap.Width,
Bitmap.Height,SrcDC,0,0,SRCCOPY);
Jpg.CompressionQuality:= 60;
Jpg.Assign(Bitmap);
//Jpg.SaveToFile(Filename); Aqui lo comento y en vez de guardarlo a un archivo lo guardo a un stream.
Jpg.SaveToStream(stream);
finally
Bitmap.Free;
Jpg.Free;
ReleaseDC(SrcWindow,SrcDC);
end;
end;
Result:=stream;
end;

// Ejemplo de como usar la funcion
MiStream:=Capturar('c:\1.jpg',Panel1);
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates.
Responder Con Cita
  #4  
Antiguo 22-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
Agradecimiento

Muchas gracias ya estoy analizandolo,en cuanto tenga un resultado te lo notifico, me hes de mucha ayuda me dejastes sin palabras saludos
Responder Con Cita
  #5  
Antiguo 23-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
ya funcionó

Saludos, ya me funcionó muchs gracias,cualquier duda avisenme,aunque hay algo que necesito verificar cuando cambio el tamaño con la VCL Vampyre Imaging Library al usar resizeImage,(Lo hago para realizar los thumbnails <con jvthumbview>) se tarda en cargar las imagenes stream obtenidas del bitmap obtenido por el escáner ,.es normal?, se puede optimizar?... ejej
saludos.
Responder Con Cita
  #6  
Antiguo 23-04-2008
santus santus is offline
Miembro
 
Registrado: ene 2006
Posts: 130
Poder: 19
santus Va por buen camino
Cita:
Empezado por mrnovice Ver Mensaje
Saludos, ya me funcionó muchs gracias,cualquier duda avisenme,aunque hay algo que necesito verificar cuando cambio el tamaño con la VCL Vampyre Imaging Library al usar resizeImage,(Lo hago para realizar los thumbnails <con jvthumbview>) se tarda en cargar las imagenes stream obtenidas del bitmap obtenido por el escáner ,.es normal?, se puede optimizar?... ejej
saludos.
Me alegro entonces que todo marche bien. Parece que estamos haciendo proyectos parecidos, ya que yo tambien me encuentro con tus mismos problemas ..
La verdad que no conozco esa libreria Vampyre (causa gracia el nombre, jejeje).. Si lo que quieres es hacer un redimesionado del tamaño de la imagen, ya se ha tratado muchas veces aqui, y la verdad que ami me funciono muy bien que incluso se adapta muy bien a la solucion anterior. El secreto esta en el TBitmap.Canvas.StretchDraw

Mira este hilo y quiza tambien algo mas completo, mira este truco.

Suerte en tu proyecto.
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
r que r con cliente/servidor y streams zastilla Internet 1 05-10-2006 21:56:40
Archivos y Streams diegofhernando Varios 1 02-10-2006 15:50:42
Problemas con Streams e Imágenes Elfoscuro Gráficos 2 09-05-2005 19:42:26
Concatenar Streams johncook Varios 6 27-11-2004 03:25:43
ejemplo streams zastilla Internet 1 11-11-2004 11:43:35


La franja horaria es GMT +2. Ahora son las 06:27:37.


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