use of com.sun.image.codec.jpeg.JPEGImageEncoder in project Java8 by huhuhuHR.
the class OperateImage method mergeBothImageRightbottom.
/**
* 将附加图片合并到底图的左下角
*
* @param negativeImagePath
* 底图路径
* @param additionImagePath
* 附加图片路径
* @param toPath
* 合成图片写入路径
* @throws IOException
*/
public void mergeBothImageRightbottom(String negativeImagePath, String additionImagePath, String toPath) throws IOException {
InputStream is = null;
InputStream is2 = null;
OutputStream os = null;
try {
is = new FileInputStream(negativeImagePath);
is2 = new FileInputStream(additionImagePath);
BufferedImage image = ImageIO.read(is);
BufferedImage image2 = ImageIO.read(is2);
Graphics g = image.getGraphics();
g.drawImage(image2, image.getWidth() - image2.getWidth(), image.getHeight() - image2.getHeight(), null);
os = new FileOutputStream(toPath);
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(os);
enc.encode(image);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (is2 != null) {
is2.close();
}
if (is != null) {
is.close();
}
}
}
use of com.sun.image.codec.jpeg.JPEGImageEncoder in project Java8 by huhuhuHR.
the class OperateImage method mergeBothImageRightcenter.
/**
* 将附加图片合并到底图的右边中央
*
* @param negativeImagePath
* 底图路径
* @param additionImagePath
* 附加图片路径
* @param toPath
* 合成图片写入路径
* @throws IOException
*/
public void mergeBothImageRightcenter(String negativeImagePath, String additionImagePath, String toPath) throws IOException {
InputStream is = null;
InputStream is2 = null;
OutputStream os = null;
try {
is = new FileInputStream(negativeImagePath);
is2 = new FileInputStream(additionImagePath);
BufferedImage image = ImageIO.read(is);
BufferedImage image2 = ImageIO.read(is2);
Graphics g = image.getGraphics();
g.drawImage(image2, image.getWidth() - image2.getWidth(), image.getHeight() / 2 - image2.getHeight() / 2, null);
os = new FileOutputStream(toPath);
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(os);
enc.encode(image);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (is2 != null) {
is2.close();
}
if (is != null) {
is.close();
}
}
}
use of com.sun.image.codec.jpeg.JPEGImageEncoder in project Java8 by huhuhuHR.
the class OperateImage method mergeBothImage.
/**
* 合并图片(按指定初始x、y坐标将附加图片贴到底图之上)
*
* @param negativeImagePath
* 背景图片路径
* @param additionImagePath
* 附加图片路径
* @param x
* 附加图片的起始点x坐标
* @param y
* 附加图片的起始点y坐标
* @param toPath
* 图片写入路径
* @throws IOException
*/
public void mergeBothImage(String negativeImagePath, String additionImagePath, int x, int y, String toPath) throws IOException {
InputStream is = null;
InputStream is2 = null;
OutputStream os = null;
try {
is = new FileInputStream(negativeImagePath);
is2 = new FileInputStream(additionImagePath);
BufferedImage image = ImageIO.read(is);
BufferedImage image2 = ImageIO.read(is2);
Graphics g = image.getGraphics();
g.drawImage(image2, x, y, null);
os = new FileOutputStream(toPath);
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(os);
enc.encode(image);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (is2 != null) {
is2.close();
}
if (is != null) {
is.close();
}
}
}
use of com.sun.image.codec.jpeg.JPEGImageEncoder in project Java8 by huhuhuHR.
the class OperateImage method mergeBothImageCenter.
/**
* 将附加图片合并到底图的正中央
*
* @param negativeImagePath
* 底图路径
* @param additionImagePath
* 附加图片路径
* @param toPath
* 合成图片写入路径
* @throws IOException
*/
public void mergeBothImageCenter(String negativeImagePath, String additionImagePath, String toPath) throws IOException {
InputStream is = null;
InputStream is2 = null;
OutputStream os = null;
try {
is = new FileInputStream(negativeImagePath);
is2 = new FileInputStream(additionImagePath);
BufferedImage image = ImageIO.read(is);
BufferedImage image2 = ImageIO.read(is2);
Graphics g = image.getGraphics();
g.drawImage(image2, image.getWidth() / 2 - image2.getWidth() / 2, image.getHeight() / 2 - image2.getHeight() / 2, null);
os = new FileOutputStream(toPath);
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(os);
enc.encode(image);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (is2 != null) {
is2.close();
}
if (is != null) {
is.close();
}
}
}
use of com.sun.image.codec.jpeg.JPEGImageEncoder in project my_curd by qinyou.
the class ImageResize method resize.
/**
* 缩放gif图片
*
* @param originalFile 原图片
* @param resizedFile 缩放后的图片
* @param newWidth 宽度
* @param quality 缩放比例 (等比例)
* @throws IOException
*/
private static void resize(File originalFile, File resizedFile, int newWidth, float quality) {
if (quality < 0 || quality > 1) {
throw new IllegalArgumentException("Quality has to be between 0 and 1");
}
FileOutputStream out = null;
try {
ImageIcon ii = new ImageIcon(originalFile.getCanonicalPath());
Image i = ii.getImage();
Image resizedImage = null;
int iWidth = i.getWidth(null);
int iHeight = i.getHeight(null);
if (iWidth > iHeight) {
resizedImage = i.getScaledInstance(newWidth, (newWidth * iHeight) / iWidth, Image.SCALE_SMOOTH);
} else {
resizedImage = i.getScaledInstance((newWidth * iWidth) / iHeight, newWidth, Image.SCALE_SMOOTH);
}
// This code ensures that all the pixels in the image are loaded.
Image temp = new ImageIcon(resizedImage).getImage();
// Create the buffered image.
BufferedImage bufferedImage = new BufferedImage(temp.getWidth(null), temp.getHeight(null), BufferedImage.TYPE_INT_RGB);
// Copy image to buffered image.
Graphics g = bufferedImage.createGraphics();
// Clear background and paint the image.
g.setColor(Color.white);
g.fillRect(0, 0, temp.getWidth(null), temp.getHeight(null));
g.drawImage(temp, 0, 0, null);
g.dispose();
// Soften.
float softenFactor = 0.05f;
float[] softenArray = { 0, softenFactor, 0, softenFactor, 1 - (softenFactor * 4), softenFactor, 0, softenFactor, 0 };
Kernel kernel = new Kernel(3, 3, softenArray);
ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
bufferedImage = cOp.filter(bufferedImage, null);
// Write the jpeg to a file.
out = new FileOutputStream(resizedFile);
// Encodes image as a JPEG data stream
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImage);
param.setQuality(quality, true);
encoder.setJPEGEncodeParam(param);
encoder.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
LOG.error(e.getMessage());
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
LOG.error(e.getMessage());
}
}
}
Aggregations