Как мне создать калейдоскопическую фотографию с этим? - PullRequest
0 голосов
/ 24 мая 2019

Для моего задания мне нужно превратить эту единственную картинку.

img Original

В это:

img wanted

У меня естьпопытался использовать негативы и поменять их вручную, но это не сработало.

DrawingImages.java
```java
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 Color color = null;
    int height= 250;
    int width = 250;

    DrawingImages(Picture canv, Picture p1)
    {
        newCanvas = canv;
        newCanvas.setAllPixelsToAColor(Color.BLACK);
        g = newCanvas.getGraphics();
        g2 = (Graphics2D)g;  
        pic1 = p1;
    }

    public Picture drawPicture()
    {
        //Flip the image both horizontally and vertically
        g2.drawImage(image, x+(width/2), y+(height/2), -width, -height, null);
        //Flip the image horizontally
        g2.drawImage(image, x+(width/2), y-(height/2), -width, height, null);
        //Flip the image vertically
        g2.drawImage(image, x-(width/2), y+(height/2), width, -height, null); 
        return newCanvas;  

    }    
}
```
DrawingImagesTester.java
```java
import java.awt.Color;
public class DrawImagesTester
{
    public static void main(String[] args)
    {
        Picture canvas = new Picture(500, 500);

        Picture picture1 = new Picture("flower1.jpg");
        DrawingImages draw = new DrawingImages(canvas, picture1, Color.YELLOW);

        canvas = draw.drawPicture();
        canvas.show();


    }
}

1 Ответ

0 голосов
/ 24 мая 2019

Вам нужно отразить изображение. Процесс на самом деле очень прост и часто используется. Вам просто нужно масштабировать изображение в отрицательном направлении, вдоль оси, которую вы хотите отразить (а затем перевести изображение, чтобы оно снова появилось в пространстве пользователя)

Например ...

Mirrored

BufferedImage img = ImageIO.read(new File("/Users/shanew/Downloads/kAJZbDc.jpg"));
BufferedImage mirrored = new BufferedImage(img.getWidth(), img.getHeight(), img.getType());
Graphics2D g2d = mirrored.createGraphics();
g2d.scale(-1, 1);
g2d.translate(-mirrored.getWidth(), 0);
g2d.drawImage(img, 0, 0, null);
g2d.dispose();

BufferedImage combined = new BufferedImage(img.getWidth() * 2, img.getHeight(), img.getType());
g2d = combined.createGraphics();
g2d.drawImage(img, 0, 0, null);
g2d.drawImage(mirrored, img.getWidth(), 0, null);
g2d.dispose();

JOptionPane.showMessageDialog(null, new JLabel(new ImageIcon(combined)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...