我正在尝试做一个简单的程序,我可以在画布上添加一些png.其中一个选项是旋转选定的png.我有旋转问题.当我使用Transformation时,它会在画布上旋转所有内容.我只创建了旋转90'或翻转的例子,但我想以任何角度旋转.
我也试图将swt图像转换为bufferedimage,旋转然后将bufferedimage转换为swt图像并绘制它,但它非常慢并且在透明度方面存在一些问题.
我将感激不尽的帮助 - 我想通过图像中心旋转.对于drawig我正在使用GC和Canvas - 新的GC(画布);
编辑: 我仍然有图像中心旋转问题:
gc.setAdvanced(true);
if (!gc.getAdvanced()) {
gc.drawText("Advanced graphics not supported", 30, 30, true);
return;
}
Transform oldTransform = new Transform(gc.getDevice());
gc.getTransform(oldTransform);
Transform transform = new Transform(GCController.getCanvas().getDisplay());
transform.translate(width/2, height/2);
transform.rotate(rotation);
gc.setTransform(transform);
gc.drawImage(image, x, y);
gc.setTransform(oldTransform);
transform.dispose();
Run Code Online (Sandbox Code Playgroud)