Estoy usando Stretched = True en un TImage con un mapa de bits de 256x256. Esto se reduce en 1,2,4 u 8. Como era de esperar, el texto en el mapa de bits se vuelve más horrible cuanto más salgo de '1'. Observé sin embargo que el explorador de Windows 7 hace una versión reducida del mapa de bits 'más suave' y más agradable. ¿Es posible "desenfocar" un TBitmap de esta manera?¿Es posible suavizar un TBitmap escalado en Delphi?
Respuesta
Supongo que quiere decir Stretched = True en un TImage, no en A TBitmap.
Desafortunadamente TImage no tiene remuestradores incorporados, cuando se trata de cambiar el tamaño de las imágenes en él. Mi recomendación sería utilizar Graphics32 ya que es compatible con una variedad de resamplers (algunos son mejores que otros para aumentar el tamaño de la reducción de tamaño)
Al utilizar el SEMITONO StretchBltMode, obtendrá resultados más suaves que el stretchdraw normal. Esto solo funcionará en Windows 2000 y posteriores
procedure SmoothResize();
var pt:TPoint;
h: HDC;
begin
h := imgMainPicture.Canvas.Handle;
// Previous call to StretchDraw
// imgMainPicture.Canvas.StretchDraw(Rect(0, 0, imgMainPicture.Width - 1,
// imgMainPicture.Height - 1), curPicture.AnnotatedBitmap);
// Normal StretchDraw uses STRETCH_DELETESCANS as StretchBltMode , HALFTONE should give better results
GetBrushOrgEx(h, pt);
SetStretchBltMode(h, HALFTONE);
SetBrushOrgEx(h, pt.x, pt.y, @pt);
StretchBlt(h, 0, 0, imgMainPicture.Width - 1,
imgMainPicture.Height - 1, curPicture.AnnotatedBitmap.Canvas.Handle,
0, 0, curPicture.Width,curPicture.Height,SRCCOPY);
end;
Excelente sugerencia, gracias. –
@BrianFrost HALFTONE o STRETCH_HALFTONE es su mejor apuesta en mi humilde opinión, aquí hay un código http://code.google.com/p/delphigeist-delphi-stuff/source/browse/trunk/SynMiniMap/src/SynMiniMap.pas – ComputerSaysNo
- 1. ¿Es Delphi generic TInterfaceList posible?
- 2. Delphi en la Mac, ¿es posible?
- 3. Delphi: ¿Es posible tener un cuadro combinado con elementos desactivados?
- 4. imagen Lona Suavizar
- 5. Iterativamente suavizar una curva
- 6. ¿Es posible escribir extensiones en el depurador de Delphi?
- 7. ¿Cómo escalar un UIImage sin suavizar nada?
- 8. Escalado a un punto fijo en KineticJS
- 9. ¿Es posible tramar un degradado dibujable?
- 10. ¿Es posible implementar una aplicación Delphi nativa con ClickOnce
- 11. ¿Es posible usar WPF y Delphi 2007/09 win32?
- 12. Delphi: ¿cómo recorto un mapa de bits "en su lugar"?
- 13. Escalado en JavaFX y ScrollPanes
- 14. ¿Es posible crear más de un formulario MDI en una aplicación delphi?
- 15. En Delphi es posible vincular una interfaz a un objeto que no lo implementa
- 16. Escalado socket.io entre servidores
- 17. ¿Cómo creo un eje x correctamente escalado?
- 18. Escalado y agrupamiento JPA
- 19. ¿Es posible desactivar el suavizado de fuentes en CSS?
- 20. escalado de fuente WPF
- 21. Delphi SOAP Server - Documento/Literal - ¿Posible?
- 22. ¿Es posible depurar un dll generador de C++ desde Delphi si tengo el código fuente dll?
- 23. Delphi Spring DI: ¿Es posible delegar instancias de interfaz sin un tipo de implementación?
- 24. Escalado automático de NIF TIFF multipágina en un CALayer
- 25. ¿Cómo renderizar un SVG escalado a una QImage?
- 26. escalado de imagen con CSS
- 27. Escalado de imágenes almacenadas en S3
- 28. ¿Es posible escribir un firewall en python?
- 29. ¿Es posible anular un constructor en C#?
- 30. En Java, ¿es posible borrar un poco?
Gracias, corrigió el texto. Buena sugerencia sobre Graphics32. –