package com.snda.mzang.tvtogether;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageModifier {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String imageBaseDir = "G:/My Dropbox/电视台台标";
String imageTargetDir = imageBaseDir + "/" + "target";
String imageFormat = "png";
int targetWidth = 72;
int targetHeight = 72;
File imageFolder = new File(imageBaseDir);
File imageTargetFolder = new File(imageTargetDir);
if (imageTargetFolder.isDirectory() == false) {
imageTargetFolder.mkdirs();
}
File[] imageFiles = imageFolder.listFiles();
for (File file : imageFiles) {
if (file.isDirectory() == true) {
continue;
}
String fileName = file.getName();
File targetImageFile = new File(imageTargetFolder, fileName.substring(0, fileName.lastIndexOf('.') > 0 ? fileName.lastIndexOf('.') : fileName.length()) + "."
+ imageFormat);
if (targetImageFile.isFile() == false) {
targetImageFile.createNewFile();
}
BufferedImage originalImage = null;
try {
originalImage = ImageIO.read(file);
} catch (IOException e) {
continue;
}
Image changedImage = originalImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_SMOOTH);
BufferedImage newImage = new BufferedImage(targetHeight, targetWidth, BufferedImage.TYPE_INT_ARGB);
Graphics g = newImage.getGraphics();
g.drawImage(changedImage, 0, 0, null);
g.dispose();
for (int i = 0; i < targetWidth; i++) {
for (int j = 0; j < targetHeight; j++) {
int rgb = newImage.getRGB(i, j);
if (rgb == 0) {
newImage.setRGB(i, j, -1);
}
}
}
ImageIO.write(newImage, imageFormat, targetImageFile);
}
}
}