gpt4 book ai didi

image - JavaFX中的有效图像裁剪

转载 作者:行者123 更新时间:2023-12-04 13:04:22 25 4
gpt4 key购买 nike

我正在尝试使用JavaFX编写拼图游戏,部分原因是有人问我,部分原因是我想尝试一下JavaFX。但是,我在实际裁剪图像时遇到困难。

这个想法是为用户提供图像和程序以将图像切成小块。简单吧?我的问题是这样的:我能找到的唯一方法是切割图像,然后复制图像对象并更改其可见部分,这是一个示例:

ImageView imgageView = new ImageView(); // Creates a new ImageView; this will be a single puzzle piece.
imgageView.setImage(originalImage); // Use the original image as the "base."
Rectangle2D rectangle = new Rectangle2D(0, 0, 50, 50); // Crop the image from (0,0) to (50, 50).

为了澄清最后一行,这是 related piece in the API:
public Rectangle2D(double minX,
double minY,
double width,
double height)
Creates a new instance of Rectangle2D.
Parameters:
minX - The x coordinate of the upper-left corner of the Rectangle2D
minY - The y coordinate of the upper-left corner of the Rectangle2D
width - The width of the Rectangle2D
height - The height of the Rectangle2D

现在,如果我将图片切成四或九张就好了(该游戏是为年幼的 child 准备的),但是如果我想将图片切成一个漂亮的1200张拼图怎么办?这样会不会导致非常昂贵的操作?不仅可以裁剪本身,而且可以将图像的这么多副本保留在内存中。请看,如果我对这一点的理解正确,那么每张照片都将包含整个原始图像,其中很大一部分将保持“隐藏”状态。

我只是误解了该功能吗?如果没有,一定有更好的方法来做到这一点,对吗?

最佳答案

使用PixelReader和WritableImage应该会有所帮助。

以下内容从position (x,y)size (width, height)的旧图像中切出了新图像

PixelReader reader = oldImage.getPixelReader();
WritableImage newImage = new WritableImage(reader, x, y, width, height);

关于image - JavaFX中的有效图像裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14802374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com