java 存储png文件_如何使用Java中的tEXt或iTXt块保存PNG?

我在一些反编译后遇到的解决方案如下……

RenderedImage image = getMyImage();

Iterator iterator = ImageIO.getImageWritersBySuffix( "png" );

if(!iterator.hasNext()) throw new Error( "No image writer for PNG" );

ImageWriter imagewriter = iterator.next();

ByteArrayOutputStream bytes = new ByteArrayOutputStream();

imagewriter.setOutput( ImageIO.createImageOutputStream( bytes ) );

// Create & populate metadata

PNGMetadata metadata = new PNGMetadata();

// see http://www.w3.org/TR/PNG-Chunks.html#C.tEXt for standardized keywords

metadata.tEXt_keyword.add( "Title" );

metadata.tEXt_text.add( "Mandelbrot" );

metadata.tEXt_keyword.add( "Comment" );

metadata.tEXt_text.add( "..." );

metadata.tEXt_keyword.add( "MandelbrotCoords" ); // custom keyword

metadata.tEXt_text.add( fractal.getCoords().toString() );

// Render the PNG to memory

IIOImage iioImage = new IIOImage( image, null, null );

iioImage.setMetadata( metadata ); // Attach the metadata

imagewriter.write( null, iioImage, null );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值