Преобразование DIB в J2K с помощью Java
Преобразуйте DIB в J2K с помощью собственных API-интерфейсов Java, не прибегая к редактору изображений или сторонним библиотекам.
Как преобразовать DIB в J2K с помощью Java
Казалось бы, преобразование форматов файлов — обыденная задача, с которой сталкивается каждый графический дизайнер. Однако не стоит пренебрегать важностью ее решения. От того, насколько быстро и качественно вы ее решите, может зависеть оценка вашей работы. Для полученных исходных изображений, как правило, требуется их конвертация в другие форматы — более подходящие для целей печати или публикации в Интернете. Исходное изображение, подготовленное в графическом редакторе, может быть также в векторном формате. В этом случае для публикации его нужно растеризовать и конвертировать в растровый формат. Сохранить изображение можно в формате без сжатия для наилучшего качества или преобразовать его в формат со сжатием без потерь, чтобы уменьшить размер файла. Для некоторых целей, например, публикации на интернет-сайте, доступна конвертация в форматы со сжатием с потерями. Специально разработанные алгоритмы сжатия данных для изображений позволяют (при сохранении приемлемого качества изображения) значительно уменьшать размер файла, что обеспечивает быструю загрузку файлов изображений из Интернета. Чтобы преобразовать DIB в J2K, мы будем использовать Aspose.Imaging для Java API, который представляет собой многофункциональный, мощный и простой в использовании API для обработки и преобразования изображений для платформы Java. Вы можете скачать его последнюю версию прямо с Maven и установите его в своем проекте на основе Maven, добавив следующие конфигурации в файл pom.xml.
Репозиторий
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Зависимость
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>
Действия по преобразованию DIB в J2K через Java
Разработчики могут легко загружать и преобразовывать файлы DIB в J2K, написав всего несколько строк кода.
- Загрузить файл DIB методом Image.load
- Создайте и установите экземпляр требуемого подкласса ImageOptionsBase (например, BmpOptions, PngOptions и т. д.)
- Вызвать метод Image.save
- Передать путь к файлу с расширением J2K и объектом класса ImageOptionsBase
Системные Требования
Прежде чем запускать код примера преобразования, убедитесь, что выполнены следующие предварительные условия:
- Операционная система Windows или Linux.
- Среда разработки поддерживающая .NET Core 7 и выше, например Microsoft Visual Studio.
Бесплатное приложение для конвертации изображений DIB в J2K
- Выберите или перетащите мышью изображение формата DIB
- Выберите формат и нажмите кнопку `Конвертировать`
- Нажмите кнопку `Скачать` для скачивания J2K изображения
Посмотрите наши примеры для конвертации DIB в J2K
Преобразование DIB в J2K - Java
import com.aspose.imaging.Image; | |
import com.aspose.imaging.ImageOptionsBase; | |
import com.aspose.imaging.fileformats.jpeg2000.Jpeg2000Codec; | |
import com.aspose.imaging.fileformats.png.PngColorType; | |
import com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat; | |
import com.aspose.imaging.imageoptions.*; | |
//This example demonstrates how to convert all supported file formats from one to another | |
String templatesFolder = "D:\\WorkDir\\"; | |
//Formats that support both - save and load | |
HashMap<String, ImageOptionsBase> formatsThatSupportExportAndImport = new HashMap<String, ImageOptionsBase>(); | |
formatsThatSupportExportAndImport.put("bmp", new BmpOptions()); | |
formatsThatSupportExportAndImport.put("gif", new GifOptions()); | |
formatsThatSupportExportAndImport.put("dicom", new DicomOptions()); | |
formatsThatSupportExportAndImport.put("emf", new EmfOptions()); | |
formatsThatSupportExportAndImport.put("jpg", new JpegOptions()); | |
formatsThatSupportExportAndImport.put("jpeg", new JpegOptions()); | |
formatsThatSupportExportAndImport.put("jpeg2000", new Jpeg2000Options() ); | |
formatsThatSupportExportAndImport.put("j2k", new Jpeg2000Options() {{ setCodec(Jpeg2000Codec.J2K); }} ); | |
formatsThatSupportExportAndImport.put("jp2", new Jpeg2000Options() {{ setCodec(Jpeg2000Codec.Jp2); }} ); | |
formatsThatSupportExportAndImport.put("png",new PngOptions() {{ setColorType(PngColorType.TruecolorWithAlpha); }}); | |
formatsThatSupportExportAndImport.put("apng", new ApngOptions()); | |
formatsThatSupportExportAndImport.put("svg", new SvgOptions()); | |
formatsThatSupportExportAndImport.put("tiff", new TiffOptions(TiffExpectedFormat.Default)); | |
formatsThatSupportExportAndImport.put("tif", new TiffOptions(TiffExpectedFormat.Default)); | |
formatsThatSupportExportAndImport.put("wmf", new WmfOptions()); | |
formatsThatSupportExportAndImport.put("emz", new EmfOptions() {{ setCompress(true); }}); | |
formatsThatSupportExportAndImport.put("wmz", new WmfOptions() {{ setCompress(true); }}); | |
formatsThatSupportExportAndImport.put("svgz", new SvgOptions(){{ setCompress(true); }}); | |
formatsThatSupportExportAndImport.put("tga", new TgaOptions()); | |
formatsThatSupportExportAndImport.put("webp", new WebPOptions()); | |
formatsThatSupportExportAndImport.put("ico", new IcoOptions()); | |
//Formats that can be only saved | |
HashMap<String, ImageOptionsBase> formatsOnlyForExport = new HashMap<String, ImageOptionsBase>(); | |
formatsOnlyForExport.put("psd", new PsdOptions()); | |
formatsOnlyForExport.put("dxf", new DxfOptions() {{ setTextAsLines(true); setConvertTextBeziers(true); }} ); | |
formatsOnlyForExport.put("pdf", new PdfOptions()); | |
formatsOnlyForExport.put("html", new Html5CanvasOptions()); | |
//Formats that can be only loaded | |
List<String> formatsOnlyForImport = Arrays.asList("djvu", "dng", "dib", "eps", "cdr", "cmx", "otg", "odg"); | |
//Get total formats that can be saved | |
HashMap<String, ImageOptionsBase> exportToFormats = new HashMap<String, ImageOptionsBase>(formatsOnlyForExport); | |
exportToFormats.putAll(formatsThatSupportExportAndImport); | |
//Get total formats that can be loaded | |
List<String> importFormats = new LinkedList<>(formatsOnlyForImport); | |
importFormats.addAll(formatsThatSupportExportAndImport.keySet()); | |
importFormats.forEach((formatExt) -> { | |
String inputFile = templatesFolder + "template." + formatExt; | |
for (Map.Entry<String, ImageOptionsBase> exportFormat : exportToFormats.entrySet()) | |
{ | |
String outputFile = String.format("%s\\%s\\%s-%s-to-%s.%s", templatesFolder, "convert", "convert-", formatExt, exportFormat.getKey(), exportFormat.getKey()); | |
System.out.println(outputFile); | |
// More about load method can be found at | |
// https://apireference.aspose.com/imaging/java/com.aspose.imaging/Image#load-java.lang.String- | |
try (Image image = Image.load(inputFile)) | |
{ | |
ImageOptionsBase exportOptions = exportFormat.getValue().deepClone(); | |
if ((formatExt.equals("emf") || formatExt.equals("emz")) && (exportFormat.getValue() instanceof WmfOptions)) | |
{ | |
EmfRasterizationOptions rasterizationOptions = new EmfRasterizationOptions(); | |
rasterizationOptions.setPageWidth(image.getWidth()); | |
rasterizationOptions.setPageHeight(image.getHeight()); | |
exportOptions.setVectorRasterizationOptions(rasterizationOptions); | |
} | |
image.save(outputFile, exportOptions); | |
} | |
} | |
}); |
DIB Чем является DIB формат
Файл DIB (Device Independent Bitmap) — это файл растрового изображения, структура которого аналогична стандартным файлам Bitmap (BMP), но имеет другой заголовок. Его можно открыть практически всеми приложениями, которые могут открывать стандартный файл BMP как в Windows, так и в macOS. DIB являются двоичными файлами и имеют сложный формат файла, аналогичный BMP.
Читать далее | DIBJ2K Чем является J2K формат
Файл J2K представляет собой изображение, сжатое с использованием вейвлет-сжатия вместо сжатия DCT.
Читать далее | J2KДругие поддерживаемые преобразования
Используя Java, можно легко конвертировать различные форматы, в том числе: