倾斜缓冲图像 java
Skew Buffered Image java
我有一张图片,我想根据边角进行裁剪。
例如
我只想切数独谜题。我有角 (x1, y1), (x2, y2), (x3, y3), (x4, y4).
试过这个:
javaxt.io.Image image = new javaxt.io.Image(bufferedImage);
image.setCorners((float) pointTopLeft.getX(), (float) pointTopLeft.getY(), //UL
(float) pointTopRight.getX(), (float) pointTopRight.getY(), //UR
(float) pointBottomRight.getX(), (float) pointBottomRight.getY(), //LR
(float) pointBottomLeft.getX(), (float) pointBottomLeft.getY()); //LL
但结果 returns 是这样的(这不是我想要的):
您应该使用方法 image.getSubImage(x1,y1,x2,y2)
以便您可以裁剪。在此之后,您可以将其倾斜到合适的数量。
您可以先通过移动底角和右上角来倾斜图像 - 这会产生更矩形的形状。然后你可以裁剪图像。
我试过这个:
Image image = new javaxt.io.Image(bufferedImage);
// skew image
image.setCorners(
// keep the upper left corner as it is
0,0, // UL
// push the upper right corner more to the bottom
image.getWidth(),20, // UR
// push the lower right corner more to the left
image.getWidth()-45,image.getHeight(), // LR
// push the lower left corner more to the right
55,image.getHeight()); // LL
// crop image
image.crop(80, 105, image.getWidth()-150, image.getHeight()-105);
结果是这样的:
希望对您有所帮助。
我有一张图片,我想根据边角进行裁剪。 例如
我只想切数独谜题。我有角 (x1, y1), (x2, y2), (x3, y3), (x4, y4).
试过这个:
javaxt.io.Image image = new javaxt.io.Image(bufferedImage);
image.setCorners((float) pointTopLeft.getX(), (float) pointTopLeft.getY(), //UL
(float) pointTopRight.getX(), (float) pointTopRight.getY(), //UR
(float) pointBottomRight.getX(), (float) pointBottomRight.getY(), //LR
(float) pointBottomLeft.getX(), (float) pointBottomLeft.getY()); //LL
但结果 returns 是这样的(这不是我想要的):
您应该使用方法 image.getSubImage(x1,y1,x2,y2)
以便您可以裁剪。在此之后,您可以将其倾斜到合适的数量。
您可以先通过移动底角和右上角来倾斜图像 - 这会产生更矩形的形状。然后你可以裁剪图像。
我试过这个:
Image image = new javaxt.io.Image(bufferedImage);
// skew image
image.setCorners(
// keep the upper left corner as it is
0,0, // UL
// push the upper right corner more to the bottom
image.getWidth(),20, // UR
// push the lower right corner more to the left
image.getWidth()-45,image.getHeight(), // LR
// push the lower left corner more to the right
55,image.getHeight()); // LL
// crop image
image.crop(80, 105, image.getWidth()-150, image.getHeight()-105);
结果是这样的:
希望对您有所帮助。