Javafx 2 JavaFx中图像的子矩形
我有一个javafx.scene.image.image,需要创建一个带有子矩形的新图像。我试过PixelReader.getPixels,但它要求使用可写的PixelFormat,我不知道如何使用它 我建议您做的是实例化一个仅与子矩形大小相同的,并使用其在那里绘制源图像的一部分。完成此操作后,像使用ImageView一样使用画布 我在一个课堂上做这件事,把一个图像切成几片,然后给你 基本上,这些步骤是:Javafx 2 JavaFx中图像的子矩形,javafx-2,Javafx 2,我有一个javafx.scene.image.image,需要创建一个带有子矩形的新图像。我试过PixelReader.getPixels,但它要求使用可写的PixelFormat,我不知道如何使用它 我建议您做的是实例化一个仅与子矩形大小相同的,并使用其在那里绘制源图像的一部分。完成此操作后,像使用ImageView一样使用画布 我在一个课堂上做这件事,把一个图像切成几片,然后给你 基本上,这些步骤是: 创建子矩形大小的画布节点 获取该画布的GraphicsContext 使用图像作为源,在画
public void drawImage(Image img,
double srcX,
double srcY,
double srcWidth,
double srcHeight,
double destX,
double destY,
double destWidth,
double destHeight)
以下是我用Scala绘制图像“切片”的代码:
导入javafx.scene.image.image
导入javafx.scene.canvas.canvas
类切片器(val img:Image,val xAmount:Int,val yAmount:Int){
val sliceWidth=img.getWidth()/xAmount
val sliceHeight=img.getHeight()/yAmount
def切片(x:Int,y:Int):画布={
val画布=新画布(切片宽度、切片高度)
val grContext=canvas.getGraphicsContext2D()
val(sourceX,sourceY)=坐标fsliceat(x,y)
val(destX,destY)=(0,0)
grContext.drawImage(img,
sourceX、sourceY、切片宽度、切片高度、,
destX、destY、切片宽度、切片高度)
帆布
}
def coordinatesOfSliceAt(x:Int,y:Int):(Int,Int)={
val coordX=((x-1)*切片宽度).toInt
val coordY=((y-1)*切片高度).toInt
(coordX,coordY)
}
}
当我遇到这个问题时,我想到了这个解决方案:
相关的部分是,他们将原始图像的片段绘制到画布上。因此,无需处理像素阅读器或写入器。您可以发布一些可执行的示例代码吗?我已经完成了,不需要直接与
可写像素格式
交互。