如何使用drawImage()裁剪图像?

用户名

我正在尝试裁剪一个500x500的图像,使其中心只有300x300的矩形,如下所示:

   Original  Image              
+-------------------+        +-------------------+
|     500 x 500     |        |     Crop Area     |
|                   |        |   +-----------+   |
|                   |        |   | 300 x 300 |   |
|                   |        |   |           |   |
|                   |        |   |           |   | 
|                   |        |   +-----------+   |     
|                   |        |                   |
+-------------------+        +-------------------+

我看到Graphics.drawImage()带有8个int参数的参数表示它将绘制图像的某个区域,这似乎只适合绘制图像的裁剪区域,但是当我尝试使用image.getGraphics().drawImage(image, 0, 0, 500, 500, 100, 100, 400, 400, null);,并不能正确裁剪图像。

我应该给什么参数drawImage来裁剪图像?

维特鲁威

前四个int参数表示要绘制到的图像(目标图像)的矩形部分,后四个表示要绘制的图像(源图像)的矩形部分。如果这些矩形的大小不同,则将对源图像进行缩放(缩放)以适合目标图像。您尝试进行的drawImage(image, 0, 0, 500, 500, 100, 100, 400, 400, null)操作不太奏效,因为在获得正确的图像区域后,您将其增大以适合整个图像。因为要裁剪图像-更改其尺寸-必须创建一个新图像,该尺寸适合于裁剪区域,然后绘制到该图像上。

这是一个将裁剪后的图像存储在BufferedImage中的示例:

//enter the appropriate type of image for TYPE_FOO
BufferedImage cropped = new BufferedImage(300, 300, BufferedImage.TYPE_FOO);
cropped.getGraphics().drawImage(image, 
        0, 0, 300, 300, //draw onto the entire 300x300 destination image
        100, 100, 400, 400, //draw the section of the image between (100, 100) and (400, 400)
        null);
image = cropped;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

canvas.drawImage裁剪图像

来自分类Dev

如何使用AsciiDoctor裁剪/裁剪图像

来自分类Dev

如何使用mogrify裁剪图像

来自分类Dev

如何使用CSS裁剪图像

来自分类Dev

如何使用ImageMagick提高裁剪图像的性能?

来自分类Dev

如何使用jcrop裁剪不同尺寸的图像

来自分类Dev

如何使用JavaScript裁剪图像的区域?

来自分类Dev

如何使用Laravel Varbox裁剪不同的图像?

来自分类Dev

不确定如何使用CICrop裁剪图像

来自分类Dev

如何使用 Python PIL 或 CV 裁剪图像?

来自分类Dev

如何使用opencv python从底部裁剪图像

来自分类Dev

使用Javascript裁剪图像(裁剪)

来自分类Dev

使用drawImage裁剪无法在Safari中使用

来自分类Dev

如何从相机裁剪图像

来自分类Dev

如何裁剪图像并保存?

来自分类Dev

canvas.drawImage将裁剪的图像吹成比例

来自分类Dev

使用坐标裁剪图像

来自分类Dev

使用CSS裁剪图像

来自分类Dev

使用drawimage和重绘时如何替换旧图像

来自分类Dev

如何使用带有图像URL的reportlab的drawImage?

来自分类Dev

加载数组中的所有图像后如何使用drawImage

来自分类Dev

如何使用Javascript图像裁剪器“ Croppie”进行保存

来自分类Dev

如何使用CSS裁剪具有任何大小的图像

来自分类Dev

如何调整大小然后使用画布裁剪图像

来自分类Dev

如何使用html和CSS裁剪和设计这些图像?

来自分类Dev

如何裁剪使用Python OpenCV的图像上的每个字?

来自分类Dev

如何使用ImageMagic裁剪图像的左侧和右侧

来自分类Dev

如何使用Java将图像裁剪为圆形?

来自分类Dev

如何使用PIL从图像中裁剪自定义形状?