Я хочу написать изображение в формате JPEG на Java. Я использую класс 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 странное. Я хочу знать, хочу сделать с проблемой. Должен ли я изменить значение для каждого пикселя растра?