Как сохранить изображение, сгенерированное gwt canvas, на жесткий диск компьютера?

#gwt #canvas

#gwt #холст

Вопрос:

Ниже приведен код для получения изображения из canvas в GWT.

 testCanvas.setWidth(144   "px");
testCanvas.setHeight(144   "px");
testCanvas.setCoordinateSpaceWidth(144);
testCanvas.setCoordinateSpaceHeight(144);
context = testCanvas.getContext2d();
context.fillRect(1,1,114,114);      
imagelocation=testCanvas.toDataUrl();
Image image=new Image(imagelocation);
  

Теперь у меня есть изображение, и я хочу сохранить это изображение в каком-нибудь месте на моем компьютере. Как я могу это сделать?

Комментарии:

1. Вы имеете в виду, что хотите запустить диалоговое окно загрузки файла для этого изображения?

Ответ №1:

Вы можете использовать canvas.Используйте toDataURL(«image /png») для сохранения изображения.

 // Add screen capture button
Button bt = new Button();
bt.setText("Capture");
RootPanel.get().add(bt);
bt.addClickHandler(new ClickHandler() {

    @Override
    public void onClick(ClickEvent event) {
        Window.open(canvas.toDataUrl("image/png"), "_blank", "");
    }
});
  

Ответ №2:

Я думаю, вам придется либо отправить данные на сервер, и пользователь загрузит данные с этого сервера, либо внедрить какой-нибудь объект Flash или Java, который может напрямую обращаться к жесткому диску. JavaScript (включая GWT) не разрешен для записи файлов на жесткий диск в большинстве браузеров.

Если вам просто нужно, чтобы изображение было доступно для вашего приложения, вы могли бы использовать какую-либо форму локального хранилища, отличную от файлов, хотя ваш пользователь не сможет получить к нему доступ из других приложений.