2015-08-06 8 views
3

Мне нужно изменить изображение с помощью java, поэтому для этого я использую BufferedImage. После того, как я изменил изображение, мне нужно будет сохранить его в формате BMP с 600 DPI; однако BufferedImage по умолчанию использует DPI до 72.Изменение DPI изображения BMP в Java

Я попытался установить DPI непосредственно на изображение, но ничего не изменилось. Я ссылался на this Wikipedia article для изменения данных DPI в формате BMP.

Вот мой код, используемый для изменения значения ДОИ.

public static void main(String[] args) throws Exception { 
    File output = new File("/Users/alex/Desktop/out.bmp"); 

    try (RandomAccessFile f = new RandomAccessFile(output, "rw")) { 
     f.seek(38); 
     f.write(1); 
     f.seek(42); 
     f.write(1); 
    } 
} 
+0

Вы проверили [это] (http://stackoverflow.com/questions/4574715/how-do-i-re-set-a-bmp-files-resolution-dpi-indicator) вопрос? – carpenter

ответ

2

BMP означает битмап, который предполагает, что каждое значение пикселя сохраняется в сетке. Эта сетка просто считывается без специальной декомпрессии или интерполяции.

Изображения BMP не изменяются в зависимости от значения DPI, указанного в метаданных изображения, но это хорошо, когда значение является точным. Скорее, DPI там, чтобы помочь любому, кто смотрит на изображение, посмотреть, что такое DPI. Изменение этого в изображении бесплодно, потому что оно фактически не изменит разрешение вашего изображения.

Разрешение определяется размером вашего изображения (количество пикселей, которое вы заклинило на вашем изображении).

Here - хорошая статья о растровых изображениях.

 Смежные вопросы

  • Нет связанных вопросов^_^