Mar*_*wie 11 java png text javax.imageio
我目前正在使用javax.imageio.ImageIO来编写PNG文件.我想包括一个tEXt块(实际上是这里列出的任何块),但是看不到这样做的方法.
通过com.sun.imageio.plugins.png.PNGMetadata的外观,它应该是可能的.
我应该非常感谢任何线索或答案.
M.
Mar*_*wie 10
我在一些反编译后遇到的解决方案如下......
RenderedImage image = getMyImage();
Iterator<ImageWriter> 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 );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3973 次 |
| 最近记录: |