В Eclipse у меня есть представление, которое использует GEF и некоторые из отображаемых мной фигур.Мне нужно нарисовать некоторый фон.
Для некоторых фонов я использую систему папок с набором предопределенных изображений (top_left.png
, top.png
, top_right.png
, left.png
, middle.png
, ...., bottom_right.png
) и, хотя я могу при необходимости воссоздать фон, он крайне неэффективен (тем более что он перерисовывается каждый раз, когда вид прокручивается или мимо проходит муха).
Чтобы не создавать заново фоновое изображение каждый раз, я хочу использовать систему кеширования: я создаю объект Image, на котором я рисую каждое изображение, а затем кеширую это изображение на карте (ключом является размер изображения).
Чтобы иметь возможность иметь закругленные углы, изображение кэша должно иметь прозрачный фон, и именно здесь я блокирую:
Я попытался установитьпрозрачный пиксель и рисование того же цвета, но безуспешно
Я пытался использовать ImageData, чтобы установить альфа в зависимости от альфы каждого исходного изображения, но в этом случае, в то время как прозрачностьОтлично, созданное изображение - белое.
Есть ли способ в SWT создать прозрачное фоновое изображение, на котором я могу нарисовать некоторые изображения?
Обновление:
Я нашел возможное решение с помощью BufferedImage из AWT и преобразования в SWT с использованием кода, найденного в http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/ConvertbetweenSWTImageandAWTBufferedImage.htm
Несмотря на хорошую базу, этот код на самом деле не обрабатывает прозрачность, и я быстро (и довольно грязно) изменил его, чтобы сделать это.Существует ли надежный код для преобразования изображений из AWT в SWT и обратно?
Я бы предпочел какое-то решение моей проблемы, не включающее преобразование между форматами изображений назад и вперед.