Java使用AffineTransform,Graphics2D对BufferedImage进行水平翻转,注意scale与translate的执行顺序

当使用transform.scale(-1,1)翻转图片时,内容会移动到负坐标轴。由于transform的执行顺序是先translate后scale,简单的右移无法解决问题。正确的解决方案是预先将图片内容坐标左移,再进行翻转,以确保内容可见。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当使用transform.scale(-1, 1)时,图片内容会被翻转到负坐标,这时你肯定回想用translate再把坐标右移加回来不就行了,实际上是不行的,因为scale与translate的执行顺序是先translate再scale,永远也不可能见到翻转后的内容。

所以正确做法是,将图片内容坐标设置为负,也就是左移,这样调用scale就会将在外面的内容翻转回来

总结:应该先左移,后翻转;而不是先翻转,后右移


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值