Tôi có một thường lệ procedure DrawStuff(ACanvas: TCanvas; const ARect: TRect)
vẽ thứ gì đó vào hình chữ nhật được chỉ định trên một TCanvas. Tại thời điểm này tôi gọi DrawStuff
bằng canvas của PaintBox. Bây giờ tôi đang thêm một tùy chọn Save as
, trong đó người dùng có thể chọn từ nhiều định dạng tệp khác nhau (bmp, wmf, jpg, ... - thích hợp nhất với nhiều hậu duệ TGraphic) để lưu kết quả của DrawStuff
vào .Lưu hình ảnh vào nhiều định dạng tệp khác nhau
Vẽ đến TMetafile
và lưu thành "bla.bmp" hoặc Assign
nhập vào TPicture
không hoạt động chính xác - ví dụ: nó tạo ra các tệp có phần mở rộng ".bmp" mà không phải là bitmap. Ngay bây giờ tôi không thể tìm ra giải pháp không liên quan đến vỏ bọc đặc biệt ở mỗi định dạng tệp đơn lẻ:
- bmp - Sử dụng
TBitmap.Canvas
. - wmf/emf: Sử dụng
TMetafileCanvas
. - v.v.
Bạn có biết ý kiến nào cho tôi không?
Nó rất dễ dàng để làm cho một thói quen 'thống nhất' để tiết kiệm BMP, PNG, GIF, JPG, vv, nhưng nó là khó khăn hơn để làm điều đó nếu nó cũng bao gồm WMF hoặc EMF, vì sau này là * định dạng hình ảnh vector *, trong khi định dạng cũ là * định dạng hình ảnh raster. Trừ khi, tất nhiên, bạn chọn lưu hình ảnh dưới dạng bitmap raster được nhúng trong EMF/WMF của bạn, nhưng trong trường hợp đó, nó là ngu ngốc khi sử dụng định dạng EMF/WMF ... –
Đặc biệt vỏ wmf/emf Sẽ ổn thôi. Bạn có thể đưa cho tôi con trỏ đến thói quen thống nhất mà bạn đề cập không? –
PS: Tôi nghĩ vẽ lên một tệp siêu dữ liệu và sau đó 'Gán' cho nó thành' TPicture' có thể hoạt động như một bộ sưu tập các cuộc gọi GDI đã ghi. –