การสร้างภาพกระจกทำได้โดยการคัดลอกพิกเซลจากขวาไปซ้าย
ขั้นตอน
- อ่านภาพด้วย ImageIO.read()
- ดึงขนาดภาพ (width, height)
- สร้าง BufferedImage ว่างสำหรับผลลัพธ์
- วนลูปทุกพิกเซล แถว y เดียวกัน คอลัมน์ x จากขวาไปซ้าย
- ดึงค่าพิกเซลด้วย getRGB() ตั้งค่าด้วย setRGB() ที่ตำแหน่งกระจก
ตัวอย่างโค้ด
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class MirrorImage {
public static void main(String args[]) throws IOException {
File file = new File("D:\\Images\\tree.jpg");
BufferedImage img = ImageIO.read(file);
int h = img.getHeight(), w = img.getWidth();
BufferedImage res = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
for (int y = 0; y < h; y++) {
for (int x = 0, mirrorX = w - 1; x < w; x++, mirrorX--) {
int pixel = img.getRGB(x, y);
res.setRGB(mirrorX, y, pixel);
}
}
ImageIO.write(res, "jpg", new File("D:\\Images\\mirror_image.jpg"));
System.out.println("Done...");
}
}
ภาพอินพุตและเอาต์พุต
ภาพจะกลายเป็นภาพกระจก แสดงด้านซ้ายเป็นด้านขวา และในทางกลับกัน