1
給定一個矩形輸入圖像,我想用最多10種顏色創建一個尺寸爲40x40像素的輸出圖像。因此,所需的兩個操作是重新縮放和減色。Java中圖像的組合重新縮放和顏色縮減?
下面的ImageMagick命令的伎倆:
convert input.png -scale 40x40 -colors 10 output.png
你將如何實現在Java中相應的結果?
炮擊,以ImageMagick的是不是:-)
給定一個矩形輸入圖像,我想用最多10種顏色創建一個尺寸爲40x40像素的輸出圖像。因此,所需的兩個操作是重新縮放和減色。Java中圖像的組合重新縮放和顏色縮減?
下面的ImageMagick命令的伎倆:
convert input.png -scale 40x40 -colors 10 output.png
你將如何實現在Java中相應的結果?
炮擊,以ImageMagick的是不是:-)
像這樣的事情會工作使用JAI:
// now resize the image
ParameterBlock pb = new ParameterBlock();
pb.addSource(image); // The source image
pb.add(wScale); // The xScale
pb.add(hScale); // The yScale
pb.add(0.0F); // The x translation
pb.add(0.0F); // The y translation
RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
RenderedOp resizedImage = JAI.create("SubsampleAverage", pb, hints);
// lastly, write the newly-resized image to an
// output stream, in a specific encoding
try
{
FileOutputStream fos = new FileOutputStream(new File(filename));
JAI.create("encode", resizedImage, fos, getImageType(filename), null);
ParameterBlock ParameterBlock pb = new ParameterBlock();
ColorModel cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.TYPE_YCbCr), new int[] {8}, false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE);
pb.add(cm);
RenderedOp imgycc = JAI.create("ColorConvert", pb);
}
catch (FileNotFoundException e)
{
}
一個選項在jai.dev.java.net查找Java高級圖像(JAI)