이미지 돌리면서 배경 투명 이미지로 만들기
1. 배경용 투명 이미지 필요
2. 돌리려는 이미지 필요
3. 이 예제는 화살표를 360도 모두 만드려고 생성한 소스
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
import javax.swing.text.html.HTMLDocument.Iterator;
import android.R.color;
public class ImageRotate {
public static void main(String[] args) throws IOException{
System.out.println("## START");
File oldFile = new File("c:/testdata/image/arrow.png");
BufferedImage oldImage = ImageIO.read(new FileInputStream(oldFile));
BufferedImage emptyIm = ImageIO.read(new File("c:/testdata/image/back.png"));
int width = 35;
int height = 35;
for(double degree=0; degree < 360; degree++){
File newFile = new File("c:/testdata/image/arrow/arrow_" + ((int)degree) + ".png");
BufferedImage im = ImageIO.read(oldFile);
BufferedImage bd = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = (Graphics2D) bd.getGraphics();
//background set
g2.drawImage(emptyIm, null, 0, 0);
//im draw in background
BufferedImage newImage = new BufferedImage(oldImage.getHeight(), oldImage.getWidth(), oldImage.getType());
g2.rotate(Math.toRadians(degree), newImage.getWidth() / 2, newImage.getHeight() / 2);
g2.drawImage(oldImage, 0, 0, oldImage.getWidth(), oldImage.getHeight(), null);
//g2.drawImage(im, 0, 0, 6, 50, null);
//image to byte
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bd, "png", new FileOutputStream(newFile));
}
System.out.println("## END");
}
}
'Study > Java' 카테고리의 다른 글
Http post(s) example (0) | 2020.12.09 |
---|---|
Quartz Schduler Example (예제) (0) | 2016.07.22 |
java EXCEL 연동 (HSSF, XSSF -> SXSSF) (0) | 2014.03.19 |
java file download 한글 깨짐 현상 해결 (0) | 2014.03.12 |
jar 파일 내의 파일 경로 가져오기 (0) | 2014.03.11 |