2015-05-22 6 views
2

Для проекта нашего расширенного класса Java группа друзей и я создаем файтинг. Для отображения символов, мы экономим анимационные картинки для ImageIcons, а затем в методе paintComponent панели мы используемЧерные полосы прозрачности в gif при отображении на Java?

icon.paintIcon(this.getAssociatedGamePanel(), g, getLeftSide(), getTopY()); 

для отображения значка, так как это был самый простой способ, которым я мог бы найти, чтобы отобразить значок. Единственная проблема заключается в том, что gif будут отображать странные черные полосы в некоторых частях прозрачных пленок. Например, http://i.stack.imgur.com/yAjZY.gif

- наш гиф для низкого удара. Когда мы выводим его в Java, это выглядит следующим образом: http://i.stack.imgur.com/W6HBb.png

Я попытался с помощью различных инструментов оптимизации GIF, убедившись, что я стер прозрачность полностью, а также различные другие вещи, но не был в состоянии сделать бары исчезают. Один инструмент оптимизации изображения повернул белые полосы, но это единственное, что я смог сделать. Какие вещи я мог бы попробовать, чтобы избавиться от черных полос?

+0

Я просто угадываю, так как у меня нет времени, чтобы пройти слишком много, но я бы сказал, что размер вашего gif и вашего холста, который вы рисуете, различны. Чтобы проверить тест ради, я бы рекомендовал растянуть gif на размер холста. Если это работает, просто отступите и устраните проблему. – Sh4d0wsPlyr

ответ

0

@wewtaco, я заметил, что ваш PNG-файл имеет более широкий размер, чем файл Gif, и я думаю, что это может быть причиной появления черных полос. Можете ли вы попытаться сохранить такой же размер или область обзора на значках ... и посмотреть, не исправлены ли эти ошибки ... Кроме того, файл PNG не является фоновой прозрачностью ... он может нести некоторые цвета из исходного источника. это может быть другой причиной.

Смежные вопросы