发布网友
共4个回答
热心网友
题主肯定已经知道解决方式了, 我这里还是写一下一个可行的方法, 方便之后其他人检索.
使用
Graphics.copyArea(int x,int y,int width,int height, int dx, int dy)这个方法
用处是将x, y 这个位置上的像素点, 复制到x, y 基础上偏移了dx, dy 后的这个位置上.
手头没有代码, 大概讲一下我自己实现过的思路
图像的宽高 width, height. 偏移量 d, 当前的行/列 index
遍历高度(纵轴)上的每一行像素, 每一行的像素都横向偏移d.
g.copyArea(0, index, width, 1, d, 0);当然, 之后要拿背景色填充这一行偏移后首尾的空缺
g.drawLine(d, index, 0, index);然后宽度方向上的遍历也同理
g.copyArea(index, 0, 1, height, 0, d);当你的偏移量d 是固定的值的时候, 这样的效果只是平移.
但是, 如果每行每列偏移量是一个随机值, 或者根据你自己的一个公式计算出来的一个值, 那么, 就出现扭曲的效果了.
以上.
热心网友
旋转即可
Graphics2D.rotate(旋转弧度);
热心网友
旋转即可
Graphics2D.rotate(旋转弧度);追问能否给小弟一个简单的例子。
热心网友
这个需要美工提供图片吧