¿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? |
|
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. |
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:
|
Voy a probar a ver como va con estos componentes.
|
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. |
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; 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. |
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. |
La franja horaria es GMT +2. Ahora son las 20:13:25. |
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