我想用Java编写JPEG图像。我使用JPEGImageWriteParam
类来设置JPEGQTable
和JPEGHuffmanTable
。这是代码:
JPEGQTable[] qTables = {luminanceQTable,chromianceQTable};
JPEGHuffmanTable[] dcTables = {JPEGHuffmanTable.StdDCLuminance,JPEGHuffmanTable.StdDCChrominance};
JPEGHuffmanTable[] acTables = {JPEGHuffmanTable.StdACLuminance,JPEGHuffmanTable.StdACChrominance};
JPEGImageWriteParam param = new JPEGImageWriteParam(Locale.US);
param.setEncodeTables(qTables,dcTables,acTables);
然后使用ImageWriter
来编写图像。这是代码:
ImageOutputStream ios = ImageIO.createImageOutputStream(image);
writer.setOutput(ios);
IIOImage ioImage = new IIOImage(raster, null, metadata);
writer.write(metadata, ioImage, param);
原始图像中的元数据和栅格都没有变化。但输出的JPEG图像很奇怪。我想知道想要解决这个问题。我应该更改栅格每个像素的值吗?