![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
BMP/JPG a máxima velocidad
BMP/JPG a máxima velocidad
Existe alguna forma, digamos "al vuelo" para obtener el alto y el ancho de una imagen sea bmp y jpg? Necesito algo que sea rapido y que no tome en cuenta el tamaño del archivo, ya pese 10kb como 10Mb, que solamente lea la resolucion. Es que tengo que hacerlo con por lo menos 5000 imagenes, y realmente, ya con 100 me esta tardando horrores. Estuve usando las Vampyre Image Component, pero se me ralentiza todo. No se me ocurre como optimizar el proceso. Los path de las imagenes las cargo en un StringList, y luego cargo todo eso en una tabla (mySql), pero cuando quiero procesar la info de cada foto.... se hace demaciado lento el proceso, por lo que no me sirve. Ideas bien locas serán vienvenidas. Saludos.
__________________
|
#2
|
||||
|
||||
Para bmp puedes usar algo como esto:
http://www.clubdelphi.com/foros/show...07&postcount=4 Para jpg se podría hacer algo similar, tendría que repasar la estructura de un archivo Jpeg, pero creo que no habría problema. |
#3
|
||||
|
||||
Estuve probando con los BMP y la diferencia es rotundamente notable, se redujo el tiempo a pocos segundos. Ahora tendria que probar para los JPG, pero como seria la estructura, es decir, para hacer una funcion casi identica a:
Lo que temo, es que si convierto de JPG a BMP en la funcion, cada LoadFromFile del TJPEGImage haria todo mas lento, ya que dependeria del tamaño del JPG. Me gustaria poder hacer algo similar. Saludos y muchas gracias seoane
__________________
Última edición por MaMu fecha: 10-03-2008 a las 17:31:02. |
#4
|
||||
|
||||
El código está un poco sucio pero quedaría mas o menos así:
|
#5
|
||||
|
||||
SOLUCIONADO
Resultados Vampyre Imaging Library Vs. D. Seoane ----------------------------------------------------- Cantidad TOTAL de imágenes procesadas: 13047 Cantidad de BMP: 8756 Cantidad de JPG: 4290 ----------------------------------------------------- Tiempo de proceso V.I.L.: 6m-18s Tiempo de proceso D.Seoane: 1m-04s ----------------------------------------------------- DB: DS Memoria ----------------------------------------------------- Procesador: Athlon 2.2 - 512Kb DDR ----------------------------------------------------- Gracias seoane, sin palabras.
__________________
|
#6
|
||||
|
||||
No es por competir, pero la verdad que me daba mucha pena echar mi código al basurero;
Uso;
PD: Nadamas por curiosidad, cual es la velocidad de mi code? Saludos |
#7
|
||||
|
||||
se abren las apuestas, quien da mas??? ![]() ![]()
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#8
|
||||
|
||||
SOLUCIONADO
Resultados Vampyre Imaging Library Vs. D. Seoane Vs. cHackAll ----------------------------------------------------- Cantidad TOTAL de imágenes procesadas: 13047 Cantidad de BMP: 8756 Cantidad de JPG: 4290 ----------------------------------------------------- Tiempo de proceso V.I.L.: 6m-18s Tiempo de proceso D.Seoane: 1m-04s Tiempo de proceso cHackAll: 2m-27s ----------------------------------------------------- DB: DS Memoria ----------------------------------------------------- Procesador: Athlon 2.2 - 512Kb DDR ----------------------------------------------------- Gracias seoane, cHackAll sin palabras.
__________________
|
#9
|
||||
|
||||
Hola,
Sin querer quitar méritos a los compañeros (que no podría) me gustaría que pusieras el código que estabas usando cuando lo hacías con Vampyre Imaging. Me consta que la librería puede trabajar de varias formas, y, tal vez pudiera hacerse algo al respecto. Ahora mismo estoy echando un vistazo a su documentación, por cierto. Concretando un poco, quisiera saber si haces uso de la "interfaz de alto nivel" o la "interfaz de bajo nivel", o las "clases VCL/CLX/LCL". Por poner un ejemplo, así sería el asunto usando la "interfaz de bajo nivel", según la documentación:
Ojo, porque el "InitImage()" acaso no haga falta ejecutarlo en todo momento, para todas las imágenes. Lo mismo que el "FreeImage()". No sé. Tal vez esté un poco confundido. La idea de los compañeros (excelentemente implementada) creo que es correcta, es decir, no se carga toda la imagen, sino que se intenta obtener sólo la información necesaria, pero, tengo cierta esperanza de que la Vampyre Imaging pueda con algo similar, puesto que parece una estupenda "pieza de software". ![]() Última edición por dec fecha: 10-03-2008 a las 22:33:26. |
#10
|
||||
|
||||
Cita:
en fin... habra que darle una oportunidad a los benditos Streams ![]() Felicidades amigo seoane ![]() Saludos |
#11
|
||||
|
||||
dec
Si, estoy usando a bajo nivel, y la forma que empleo es la siguiente:
El tema del retraso pasa por la siguiente línea ya que tiene dependencia sobre el tamaño del archivo, y no encontré en la documentación otro método mas directo para las propiedades
Con respecto a las funciones
en este caso no son necesarias en todo momento, ya que no estoy utilizando ninguna de las funciones que se incluyen en las V.I.L. que dependen del TImageData en cuestión cHackAll Si, cronometré a las 3 funciones por igual proceso.
__________________
|
#12
|
||||
|
||||
Hola,
Pues tal vez el "TestImage()"... pero, me parece que no. Quiero decir, queda más o menos claro que se carga la imagen completamente, al menos con las funciones de que hablamos. De este modo se puede conseguir mucha información acerca de la imagen, pero, lo que interesa en este caso es conseguir parte de esa información, y por tanto todo el tiempo que se invierta en lo demás será para nada. |
#13
|
||||
|
||||
Cita:
Otra cosa, yo capture los ticks, haciendo un LoadFromFile a un TImage tradicional, y lo compare con el LoadImageFromFile(), ambos con una imagen de 3.5Mb, el tiempo es idéntico. Y ojo, pienso tambien que esta librería es espectacular, quizas o le estemos pifiando en algo o no me sirve por tratarse de ser muchas fotos (5000 prom).
__________________
Última edición por MaMu fecha: 11-03-2008 a las 00:04:59. |
#14
|
||||
|
||||
![]() Deberías darles esa oportunidad, al final usan las mismas APIs que tu. |
#15
|
||||
|
||||
Cita:
![]() PD: creo que la comprobación de formato me ha costado la victoria ![]() ![]() Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Maxima valor de un nuevo registro | Arturo_ | Tablas planas | 8 | 23-07-2007 22:14:32 |
Cantidad maxima de hilos ?? | marceloalegre | Varios | 2 | 18-04-2007 17:27:46 |
imprimir imagenes en maxima calidad | alain | Impresión | 3 | 22-06-2006 17:05:50 |
Longitud máxima para una consulta SQL | moesis | Conexión con bases de datos | 3 | 17-08-2004 23:54:43 |
Longitud maxima integer | cinecito | Varios | 10 | 12-05-2004 03:06:22 |
![]() |
|