【发布时间】:2011-05-05 15:19:53
【问题描述】:
我正在尝试做一个简单的程序,我可以在其中向画布添加一些 png。 选项之一是旋转选定的 png。我有旋转的问题。 当我使用 Transformation 时,它会旋转画布上的所有内容。 我只创建了旋转 90' 或翻转的示例,但我想旋转任意角度。
我也尝试将 swt 图像转换为 bufferedimage,旋转然后将 bufferedimage 转换为 swt 图像并绘制它,但它非常慢并且在透明度方面存在一些问题。
我将不胜感激 - 我想通过图像中心旋转。 对于 drawig,我正在使用 GC 和 Canvas - new GC(canvas);
编辑: 我仍然有按图像中心旋转的问题:
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();
【问题讨论】: