In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Duda TPicture

Foro de Xailer profesional en español
Responder
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Duda TPicture

Mensaje por buzonjmartial »

Buenas tardes,

oPicture:MakeThumbnail() genera un GPF si no existe la librería freeimage.dll y además mayor de la versión 3.9.3

Mi pregunta es,

¿Existe alguna manera de usar GDI+ o hacerlo de otra manera desde Xailer, de tal manera, que ese cambio de tamaño se realize sin necesitar acompañar el ejecutable de freeImage.dll ?
Un Saludo,
Joaquín Martínez
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: Duda TPicture

Mensaje por jfgimenez »

Joaquín,

si no encuentra freeimage.dll entonces se usa GDI+. Por favor, elimina freeimage.dll de cualquier sitio que pueda encontrarla.
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Duda TPicture

Mensaje por buzonjmartial »

Buenas tardes Jose,

Tenía entendido que Xailer intentaba usar GDI+ y si no podía, buscaba freeimage.dll

Por otro lado, el windows 10, es recien instalado y detecto que Microsoft incluye en el system, una freeimage.dll versión 3.8 que produce un GPF en Xailer.

He mirado en un windows 7 y también estaba y la misma versión 3.8.

Y digo yo, si el cliente tiene una freeimage.dll antigua en su system, y yo el ejecutable Xailer no lo acompaño de una freeimage.dll moderna, le dará un GPF.

Por lo tanto, ¿No sería más lógico que Xailer siempre intente primero usar GDI+ antes de freeimage.dll ?

Gracias,
Un Saludo,
Joaquín Martínez
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: Duda TPicture

Mensaje por jfgimenez »

Joaquín,

estoy revisando los fuentes, y si no me equivoco, esto es lo que hace:

- LoadFromStream( <cStream>, <lGdiPlus> ) utiliza en primer lugar IOlePicture; si no lo consigue, prueba con freeimage, y finalmente con GDI+
- LoadFromFile( <cFile>, <nImage>, <lGdiPlus> ) utiliza freeimage por defecto si <nImage> tiene algún valor (sólo si es GIF o TIFF). En cualquier otro caso, carga la imagen en memoria y llama a LoadFromStream()
- LoadFromResource( <cResource>, <cType>, <lGdiPlus> ) carga el recurso y llama a LoadFromStream()

En resumen... el primer intento es siempre con IOlePicture, que no es GDI+ pero sí es parte de windows. Si no lo consigue entonces prueba con freeimage.dll, y por último con GDI+. Si no recuerdo mal, esto se hizo así por mantener la compatibilidad, cuando añadimos el soporte de GDI+. En cualquier caso, todos esos métodos tienen un parámetro para forzarlo a usar GDI+

Por cierto, yo manejo imágenes a diario desde Xailer, y nunca he tenido el problema que comentas. Si encuentra una librería freeimage.dll con puntos de entrada distintos a la .lib/.a que viene con Xailer, es normal que se produzca un GPF. Se podría solucionar de dos formas:
- Creando una nueva librería de importación para esa dll, en cuyo caso habría que distribuirla, y no sé si la licencia de esa versión lo permitirá.
- Anular completamente el uso de freeimage. Quizás podríamos añadir algún flag global para evitar tener que usar el parámetro correspondiente de esos métodos. Tenemos que estudiarlo, pero ahora mismo no te puedo garantizar nada.
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Duda TPicture

Mensaje por buzonjmartial »

Gracias Jose por la información.

Y ya avisáis cuando hagáis cambios al respecto.
Un Saludo,
Joaquín Martínez
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: Duda TPicture

Mensaje por jfgimenez »

Joaquín,

por cierto, me picaba la curiosisdad y lo he comprobado... no hay ninguna freeimage.dll en windows. No en system ni en ningún otro sitio. Imagino que debe ser algún software que hayas instalado, y que copia esa dll a la carpeta de windows. Sinceramente, es una malísima práctica copiar dlls al directorio de windows, pero desgraciadamente todavía queda software que lo hace :-(
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Duda TPicture

Mensaje por buzonjmartial »

Jose Buenos días,

Es cierto lo que has dicho, pero tengo que descubrir que aplicación es, ya por curiosidad y controlar que no ocurra más.

Es un engorro que de un GPF por ese motivo en cualquier máquina porque exista una dll que no debería estar.
Un Saludo,
Joaquín Martínez
Responder