Đối với bất cứ ai đến xem qua bài đăng cũ này, các mã trên từ Gordon hoạt động tuyệt vời, nhưng như jixtra chỉ ra, bạn sẽ thực sự có được một ngoại lệ: System.DllNotFoundException: 'Không thể tải DLL' FreeImage ': Không tìm thấy mô-đun được chỉ định.' khi cài đặt qua nuget. Tôi đã có thể làm cho nó hoạt động trong. 4.6.1 bằng cách cài đặt gói nuget FreeImage-dotnet-core và tự thêm FreeImage.dll vào thư mục bin. Bạn có thể tải dll tại đây: http://freeimage.sourceforge.net/download.html.
tôi cần một hình ảnh chất lượng tốt hơn để sử dụng với Tesseract vì vậy tôi thực hiện một vài thay đổi nhỏ khiến một sự khác biệt rất lớn đến chất lượng của các jpeg mới:
var jp2Format = FREE_IMAGE_FORMAT.FIF_JP2;
var dib = FreeImage.LoadEx("test.jp2", ref jp2Format);
FreeImage.SetResolutionX(dib, 300);
FreeImage.SetResolutionY(dib, 300);
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JPEG, dib, "test.jpg", FREE_IMAGE_SAVE_FLAGS.JPEG_QUALITYSUPERB);
Nguồn
2018-01-14 22:46:19
cảm ơn đã hướng dẫn tôi. 1 cho câu trả lời ur. Nhưng sau khi render hình ảnh jpeg200 trên cửa sổ của tôi, tôi nhận được ngoại lệ do dib là null. ** Một ngoại lệ được ném vào đường dẫn rendering. ---> System.ArgumentNullException: Giá trị không được rỗng. Tên tham số: dib tại FreeImageAPI.FreeImage.GetBitmap (FIBITMAP dib, Boolean copyMetadata) tại FreeImageAPI.FreeImage.GetBitmap (FIBITMAP dib) **. Trong khi gỡ lỗi, phát hiện ra rằng phương pháp ** tĩnh FIBITMAP LoadEx (chuỗi tên tập tin, FREE_IMAGE_LOAD_FLAGS cờ, ref FREE_IMAGE_FORMAT định dạng) ** trả về cho tôi một cấu trúc {0} gây ra ngoại lệ trên. –
Tôi nhận được một ngoại lệ mô-đun không tìm thấy với gói nuget FreeImage mới nhất – jjxtra