Tôi có một tệp bmp và đang cố gắng chuyển đổi nó sang định dạng jpeg. Jpeg được tạo bằng cách sử dụng đoạn mã sau sẽ mất rất nhiều sự rõ ràng. Tôi đã thử tinh chỉnh nhiều cài đặt để không có kết quả.Vấn đề chuyển đổi bmp thành jpg bằng cách sử dụng thành phần TJpegImage
Có ai có chức năng chuyển đổi tệp bmp thành tệp jpeg không?
var
Bmp: TBitmap;
Jpg: TJPEGImage;
begin
Bmp := TBitmap.Create;
Jpg := TJPEGImage.Create;
try
Bmp.LoadFromFile(BmpFileName);
Jpg.Assign(Bmp);
jpg.PixelFormat :=jf24bit; // or jf8bit
Jpg.CompressionQuality := 100;
Jpg.ProgressiveDisplay := False;
Jpg.ProgressiveEncoding := False;
Jpg.SaveToFile(JpgFileName);
finally
Jpg.Free;
Bmp.Free;
end;
end;
Cập nhật II Rất nhiều người đã phản ứng jpeg mà không phải là loại đồ họa để sử dụng trong trường hợp này. Hiểu. Không phải để đánh bại một con ngựa chết, nhưng tôi đã có thể sử dụng các chương trình khác (ví dụ: Photoshop) và chuyển đổi nó thành một jpeg đẹp. Và công cụ tôi đang sử dụng để tạo biểu đồ (fusioncharts) có thể xuất nó sang một jpeg trông rất đẹp (xem bên dưới). Sự khác biệt là gì?
Tôi không biết đây có phải là vấn đề không. Bạn có thể muốn thiết lập cho bạn cài đặt chất lượng TRƯỚC KHI bạn gán BMP cho Jpg. Việc chuyển đổi có thể xảy ra tại phân công và không lưu vào tệp. –
@gbrandt: Không, tuyên bố là hoàn toàn ổn khi nó ở đâu. –
Tôi đã làm một số theo dõi về điều này. Từ những gì tôi có thể thu thập nó dường như mất đi sự rõ ràng trong cuộc gọi savetofile. Trong dự án của tôi, tôi đã thêm một TImage và gán jpeg cho nó. Nó làm cho tốt. –