![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Otra cosa, tal vez deberías mirar ésta librería (por probar no pierdes nada). Sabía que algo había visto y hasta hoy no he recordado donde (he buscado en los Bookmarks y lo he encontrado).
Graphics32: A fast graphics library for Delphi (ahoira ha pasado a SourceForge) http://www.g32.org/graphics32/index.html La descripción del paquete dice lo siguiente (hace mucho incapié en lo de "FAST", asó que tal vez te interese...): Description Graphics32 is a library designed for fast 32-bit graphics handling. Optimized for 32-bit pixel formats, it provides fast operations with pixels and graphic primitives, and in most cases Graphics32 outperforms the standard TBitmap/TCanvas classes. It is almost a hundred times faster in per-pixel access and about 2–5 times faster in drawing lines. Features Some of Graphics32 features include:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#2
|
|||
|
|||
|
Voy a probar a ver como va con estos componentes.
|
|
#3
|
|||
|
|||
|
Gracias netfali por tu ayuda pero no me sirven estos componentes. No disponen de compatibilidad con la clase TJpegImage por lo que no se como pasar un tbitmap a un tjpegimage.
Vamos que me conformo con pasar de un tbitmap a un tmemorystream pero que contenga la información comprimida. Lo que pretendo es reducir el tamaño de la imagen bmp que me llega de la cámara. Me da igual si la paso a jpeg o directamente a un tmemorystream pero comprimida con alguna función que me genere un archivo más pequeño. |
|
#4
|
||||
|
||||
|
perdon mar646, por ahi no me exprese bien.
La idea de la funcion que te pase tiene implementado un assign adentro. Código:
function BMPtoJPG (BMPpic, JPGpic: string):boolean;
var
Bitmap: TBitmap;
JpegImg: TJpegImage;
begin
Result:=False;
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile(BMPpic);
JpegImg := TJpegImage.Create;
try
JpegImg.Assign(Bitmap);
JpegImg.SaveToFile(JPGpic);
Result:=True;
finally
JpegImg.Free
end;
finally
Bitmap.Free
end;
end;
En el ejemplo anterior, se crean dos objetos, Bitmap y JpegImg, ademas tambien Bitmap carga la imagen desde disco. Aca hay bastante desperdicio de tiempo que se puede acelerar. Una es trabajando con variables globales para que no se creen y destruyan con cada conversion. Por otro lado, caragar la imagen BMP desde memoria. Espero que quede mas claro Espero que se entienda.
__________________
[Crandel] |
|
#5
|
|||
|
|||
|
Ha quedado muy claro. Pero ya he tenido eso en cuenta. Bueno, la variable bitmap se crea y se destruye en cada paso (pero te aseguro que esto es inevitable porque lo hace internamente el objeto encargado de capturar la imagen del stream de video y es algo complicado de depurar, aunque le echaré otro vistazo) pero la jpeg si que la tengo de forma global.
De todas formas muchas gracias por tus sugerencias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|