Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

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
  #7  
Antiguo 24-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
Smile Saludos

holas, jejej, pues que bueno, porque nos podemos apoyar en las áreas que no entendamos , voy a intentar este método ojala sea más rapidos.
Sobre la V.I.L. es un vcl enfocado a gráficos y creo es bueno, creo a dec y a mamu les resulto muy bien jojo deja te paso l link para que o cheques tal vez te sea de utilidad dale click aquí oye a lo mejor no es tan rápido porque no use los stream en una bd, pudiera ser? saludos suerte igualmente con tu proyecto
Responder Con Cita
  #8  
Antiguo 24-04-2008
santus santus is offline
Miembro
 
Registrado: ene 2006
Posts: 130
Poder: 19
santus Va por buen camino
Excelente!!, no sabia de la existencia de la VIL.. parece muyy completa en lo que a graficos se refiere!!... Voy a probarla a ver si realmente es tan buena como parece ..

respecto a la lentitud, la verdad que no te sabría decir el porque de la situación. No creo que tenga algo que ver que no uses los streams en la db.

Te recomiendo que habras un nuevo hilo en OOP y pegues ahí todo el procedimiento. Seguramente Dec y compañia te van a asesorar en donde podrías mejorar tu código.

Muchos saludos.
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates.
Responder Con Cita
  #9  
Antiguo 25-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
saludos

Pues ya lo puse n_n,haber si se logra, de todas maneras para que lo cheques si gustas, en teoria no debio haber alentado el proceso pero pues quien sabe.
Aquí esta el link.
Saludos.
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
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 21:53:52.


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