FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
|||
|
|||
¿La función BMP2JPG comprime una imagen en bmp a otra en jpeg?
¿Sabes si es más rápida que el assign de delphi? |
#22
|
||||
|
||||
Todas las versiones que he encontrado de BMP2JPG acaban utilizando el Assign, así que no creo que te sirva.
o ésta:
__________________
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. |
#23
|
|||
|
|||
Gracias Netfali. Bueno, todo esto me hace pensar que quizás la forma más rápida para comprimir sea la de utilizar el assign. ¿no creeis?
Si es así .... Bueno seguiré buscando una forma de acelerar esto. |
#24
|
||||
|
||||
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. |
#25
|
|||
|
|||
Voy a probar a ver como va con estos componentes.
|
#26
|
|||
|
|||
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. |
#27
|
||||
|
||||
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] |
#28
|
|||
|
|||
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. |
|
|
|