java - 如何使用 Java.awt 镜像图像

标签 java image awt graphics2d

我有一项作业需要用 Java 完成,但我一辈子都无法解决这个问题。我应该使用 Graphics2D 和 Java.AWT。沿 x 轴和 y 轴镜像图像。

当前代码是:

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
public class DrawingImages
{
private Picture newCanvas = null;
private Graphics g = null;
private Graphics2D g2 = null;
private Picture pic1 = null;
private Picture pic2 = null;
private Color color = null;
private Pixel sourcePixel, targetPixel = null;
private Color sourceColor, targetColor = null;

DrawingImages(Picture canv, Color col)
{
    Picture sourcePicture = new Picture("WashingtonMonument.jpg");
    newCanvas = canv;
    newCanvas.setAllPixelsToAColor(Color.BLACK);
    for(int y = sourcePicture.getHeight()-1; y >0; y=y-1)
    {
        for(int x = sourcePicture.getWidth() - 1; x > 0; x = x - 1)
        {
            sourcePixel = sourcePicture.getPixel(x,y);
            sourceColor = sourcePixel.getColor();
            targetPixel = newCanvas.getPixel(x+sourcePicture.getWidth() -1,y+sourcePicture.getHeight()- 1);
            targetPixel.setColor(sourceColor);         
        }
    }


    g = newCanvas.getGraphics();
    g2 = (Graphics2D)g;  
}

}

最佳答案

图片来源于什么? 图像?如果是这样,您可以使用 Image.scale(-1, -1) 直接镜像图像。

如果没有,您可以直接在 Graphics 上下文中使用 AffineTransform.getScaleInstance(-1, -1),但您必须转换图像的位置

您还可以查看AffineTransform.rotate() - how do I xlate, rotate, and scale at the same time?它使用了这种技术

关于java - 如何使用 Java.awt 镜像图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432791/

相关文章:

javascript - Canvas 动画图像旋转

jquery - 使用 css 操作图像大小无法保持原始 y 位置..!

java - 在不触发 TextListener 的情况下更改 TextField 值

java - 返回实例引用的 setter 。模式还是反模式?

java - Eclipse - 无法创建 java 虚拟机

java - Eclipse web.xml 引用文件错误

java - 如何在图像上附加文本时添加高度元素

java - 将多个包含 Java 代码的文件夹转换为可运行的 jar 文件

android - 使用 Android Facebook SDK 发布原始图像数据而不是 URL

java - 为什么用 Java 中的 Robot 模拟 Control_A 不起作用?