GWT Отсеченное изображение - PullRequest
0 голосов
/ 19 апреля 2010

Я создаю виджет, в котором часть изображения будет выделена, а оставшаяся часть будет иметь непрозрачность 0,5.

Для этого я использую два изображения. Полное изображение сзади с непрозрачностью 0,5. часть изображения, которую я хочу выделить спереди. переднее изображение - это вырезанное изображение GWT.

У меня есть сценарий, в котором я должен изменить размер заднего изображения. Есть ли способ изменить размер обрезанного изображения спереди?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2010

GWT реализует обрезанные изображения, используя стиль CSS2 (вместе с пустым содержимым изображения), как в следующем примере:

width: 300px; height: 300px; 
background: url("/team.png") no-repeat scroll -5px -5px transparent;

К сожалению, CSS2 не поддерживает масштабирование фоновых (предоставляемых URL) изображений, поэтому нет естественного способа масштабирования обрезанного изображения с помощью встроенных библиотек GWT.

Один из вариантов - использовать холст и загружать в него изображение, как описано в:
http://code.google.com/p/google-web-toolkit-incubator/wiki/GWTCanvas

В противном случае лучшим вариантом может быть обрезка или масштабирование (или оба) изображения на сервере. Извините!

-Bosh

0 голосов
/ 01 декабря 2010

Один вариант с GWT 2.0+, если вы не против обслуживать разные изображения, - это определить ClientBundle с разными источниками данных, по одному для каждого изображения. Далее вы должны использовать URL-адрес DataResource для установки URL-адресов изображений.

interface MyClientBundle extends ClientBundle {
   @Source("img1.png")
   DataResource myImg1();
   @Source("img2.png")
   DataResource myImg2();
}

private static final MyClientBundle BUNDLE = GWT.create(MyClientBundle.class);

тогда ...

new Image(BUNDLE.myImg1().getUrl());

Это должно работать, и GWT может генерировать «данные:» URL-адреса для браузеров, которые его поддерживают, исключая необходимость отдельной загрузки изображения.

Кстати: вам действительно нужно изменить размер? Визуально это не очень приятно.

...