原理是:GraphicsMagick + libpng +Java版调用工具:gm4java
步骤:
下载libpng 解压到目录
进入目录执行
./configure
make
make install
下载GraphicsMagick解压到目录
进入目录执行
./configure
make
make install
make clean
然后终端输入gm 如果提示有help字样表示安装成功
如果出现
[root@kvm21 lib]# gm
gm: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory
1、vi /etc/ld.so.conf
2、加入/usr/local/lib
3、ldconfig
ok 安装完了上代码:
com.sharneng
gm4java
1.1.0
public class DPI {
private GMConnectionPoolConfig config = new GMConnectionPoolConfig();
private PooledGMService service = new PooledGMService(config);
public static void main(String[] args) {
try {
new DPI().generate(new File("/Users/admin/Desktop/src/416_before.png"),
new File("/Users/admin/Desktop/416_after.png"), 300);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void generate(File srcFile, File destFile, int dpi) throws Exception{
service.execute(
"convert",
new String[]{
"-units",
"PixelsPerInch",
srcFile.getAbsolutePath(),
"-density", dpi+"",
destFile.getAbsolutePath()
}
);
}
}
效果:
改之前DPI
改之后DPI:
虽然肉眼看上去图片质量一样,但DPI确实改了。