2009-06-12 9 views
7

Есть ли GWT виджет, который позволяет мне:GWT на стороне клиента обрезать изображение и размер

  • выбрать часть изображения, а затем извлечь область выделения?
  • изменить размер изображения, а затем обновить размер?

Вышеуказанное должно быть отражено в браузере.

+3

Так вы были в состоянии получить решение для этого? Я также ищу ту же функцию. – Barry

+2

@bhargava: Извините, еще не повезло. –

ответ

7

Насколько я знаю, клиентский код GWT не может напрямую изменять изображения, но виджет изображения может быть установлен для отображения только части изображения. Вы можете сделать это, используя constructorImage(java.lang.String url, int left, int top, int width, int height), где width и height - размеры видимого окна, а не самого изображения.

Однако это не позволяет изменять размер, а затем обрезать. Чтобы сделать это, вы можете сначала изменить размер изображения, а затем поместить его в абсолютную панель, чтобы обрезать его.

AbsolutePanel testPanel = new AbsolutePanel(); 
Image image = new Image("path/image.jpg"); 
image.setWidth("1000px"); 
testPanel.add(image,-100,-100); 
testPanel.setPixelSize(300,300); 

Прошу прощения, если это не совсем то, что вы ищете, но это лучший ответ, который у меня есть.

+3

Это часть того, что я хотел бы сделать, но выбор должен основываться на действии пользователя, например, что происходит, например. Photoshop. –

+1

Ну, если вы хотите, чтобы пользователь мог вводить значения урожая в текстовые поля, вы можете использовать ChangeHandler, чтобы обновить позицию изображения и размер панели до любых значений текстовых полей. Если вы хотите, чтобы пользователь мог перетащить ящик и убрать его на основе размеров этого окна, вам, вероятно, понадобится перетащить библиотеку drop. – DLH

3

Вы также можете загрузить тип изображения в качестве DataResource вместо ImageResource, если вы хотите, чтобы масштабировать с setPixelsSize()

например

... 

@Source("uploading.gif") 
DataResource uploadingIcon(); 

... 

Image uploadingGif = new Image(RESOURCE.uploadingIcon().getUrl()); 
uploadingGif.setPixelSize(25, 25); 
+1

Это работает очень хорошо для меня –

2

Here как я использую элемент холста для масштабирования изображений с использованием HTML5.

+0

Я с энтузиазмом относился к использованию холста HTML5, но IE8 не поддерживает холст HTML5. – nzaero

1

Благодаря ImageResource имеют тот же метод GetURL() я использовал это работало для меня .. попробовать это будет работать, мы можем теперь использовать изображения в обоих направлениях, либо в виде URL-путь или ImageResource ..

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