Создание составного изображения с прозрачным фоном - PullRequest
2 голосов
/ 06 сентября 2011

В 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 и обратно?

Я бы предпочел какое-то решение моей проблемы, не включающее преобразование между форматами изображений назад и вперед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...