PDA

Ver la Versión Completa : Alternativa a TCanvas.StretchDraw


Jose_Pérez
17-04-2004, 11:25:53
Hola a todos:

Tengo un aplicación de archivo de imágenes, con un TDbCtrlGrid y un TImage adaptados (he creado nuevos controles descendientes de éstos) para mostrar un browser de imágenes, que funciona a la perfección.

Pero hay algo que quisiera mejorar. El nuevo TImage, lo he programado de tal modo que la propiedad Stretch funcione respetando las proporciones de alto y ancho de la imagen. Para tal fin he utilizado el método TCanvas.StretchDraw, pero me he dado cuenta de que la imagen resultante pierde calidad y detalle en comparación a la imagen original, independiente de las limitaciones propias del cambio de tamaño.

Con aplicaciones para tratamiento de imágenes, como Photoshop esto no sucede. Obviamente, las técnicas utilizadas son mucho más depuradas al utilizar métodos de interpolación. La ayuda de Photoshop lo describe así: "Al cambiar la muestra de una imagen se utiliza un método de interpolación para asignar valores de color a los píxeles que se crean, en función de los valores de color de píxeles existentes en la imagen. Cuanto más sofisticado sea el método, más calidad y detalle de la imagen original se mantiene".¿Existe algún modo, como mínimo, de mejorar el resultado de TCanvas.StretchDraw?.

Saludos y gracias.

Gydba
17-04-2004, 15:06:34
Hola,

Un link de interés:
http://www.efg2.com/Lab/Library/ImageProcessing/Algorithms.htm#GeneralAlgori

También podrías probar con funciones especificas del API de window$ como StretchBlt para ver si los resultados son mejores.

Jure
17-04-2004, 16:01:13
Hola Jose_Pérez aqui tienes un ejemplo de lo que buscas:

http://homepages.borland.com/efg2lab/ImageProcessing/AspectRatio.htm (http://homepages.borland.com/efg2lab/ImageProcessing/AspectRatio.htm)

espero que te sirva de algo.

Jure.