Tôi đang sử dụng Kéo dài = True trên một TImage với bitmap 256x256. Điều này được thu nhỏ xuống 1,2,4 hoặc 8 Như dự kiến, văn bản trên bitmap trở nên khủng khiếp hơn tôi khởi hành từ '1'. Tôi nhận thấy rằng Windows 7 explorer làm cho một phiên bản thu nhỏ của bitmap 'mềm hơn' và dễ chịu hơn. Có thể 'làm mờ' một TBitmap theo cách này không?Có thể làm mịn một TBitmap thu nhỏ trong Delphi không?
Trả lời
Tôi cho rằng bạn có nghĩa là Kéo dài = True trên một TImage, không phải trên A TBitmap.
Thật không may TImage không có bộ dựng lại được tích hợp sẵn, khi nói đến việc thay đổi kích thước hình ảnh trong đó. Khuyến nghị của tôi là sử dụng Graphics32 vì nó hỗ trợ nhiều loại bộ lấy mẫu khác nhau (một số tốt hơn để tăng kích thước khác để giảm kích thước)
Bằng cách sử dụng HALFTONE StretchBltMode, bạn sẽ nhận được kết quả mượt mà hơn bình thường. Điều này sẽ chỉ hoạt động trong cửa sổ 2000 trở lên
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;
Đề xuất tuyệt vời, cảm ơn. –
@BrianFrost HALFTONE hoặc STRETCH_HALFTONE là IMHO đặt cược tốt nhất của bạn, đây là một số mã http://code.google.com/p/delphigeist-delphi-stuff/source/browse/trunk/SynMiniMap/src/SynMiniMap.pas – ComputerSaysNo
- 1. Hình thu nhỏ PDF ở Delphi
- 2. Làm mịn phông chữ ở Delphi
- 3. Có thể phóng to và thu nhỏ không?
- 4. Delphi - Thu nhỏ & khôi phục sẽ giải phóng bộ nhớ?
- 5. Làm thế nào tôi có thể kéo dài bitmap trong WPF mà không làm mịn pixel
- 6. Thu nhỏ trong Octave/gnuplot
- 7. Delphi 6: Delphi có thể làm đồ họa mượt mà như Flash không?
- 8. không thể phóng to thu nhỏ trên trình giả lập
- 9. Nhúng một ô thu nhỏ trong một ô
- 10. phóng to thu nhỏ và thu nhỏ không hoạt động chính xác
- 11. Chúng tôi có thể phóng to/thu nhỏ tệp Xib Xem trong XCode 4.0 không?
- 12. Hình thu nhỏ FLV
- 13. thu nhỏ hoặc nhỏ gọn trong Sql Server CE?
- 14. Firefox có ngừng chạy JavaScript khi thu nhỏ (longpolling) không?
- 15. Downsampling mà không làm mịn
- 16. Python có thể gọi hàm Delphi trong một DLL không?
- 17. Hình thu nhỏ LiipImagineBundle không hoạt động
- 18. Danh sách thu nhỏ Bootstrap không hiển thị hình thu nhỏ
- 19. Tạo hình thu nhỏ
- 20. Làm cách nào để thu nhỏ mảng trong Perl?
- 21. Phóng to/thu nhỏ một TImage bên trong TScrollBox đến một tiêu điểm cụ thể?
- 22. PHP Thu nhỏ bọc trong thẻ
- 23. Làm cách nào tôi có thể tạo một hình thu nhỏ của một tệp PDF bằng SDK iPhone?
- 24. Video hình thu nhỏ C#
- 25. PyQt4 Thu nhỏ thành Khay
- 26. Lớp Hình thu nhỏ PHP
- 27. JavaFX ImageView mà không có bất kỳ làm mịn nào
- 28. Làm thế nào để phát triển/thu nhỏ một TextBlock (Cỡ chữ) thành không gian có sẵn trong WPF?
- 29. Tôi có thể điều hướng, phóng to và thu nhỏ ô R không?
- 30. Excel 2007 Thu nhỏ Ribbon một cách có lập trình nhưng Không phải thanh menu
Cảm ơn, đã sửa văn bản. Tốt gợi ý lại Graphics32. –