javascript - 使用 ruby​​ on rails 和 javascript 将 Canvas 转换为图像并在新窗口中打开

标签 javascript ruby-on-rails image canvas

我很困在这个问题上,希望你们能帮助我。

我想要实现的是点击一个链接、按钮或图像,这看起来更简单,我使用 toDataURL 将 Canvas 转换为图像。之后会打开一个包含此图像的新窗口。

如何使用 ruby​​ on rails 将从 toDataURL 生成的数据 url 传递到新窗口?

提前致谢。

最佳答案

首先,这与 Rails 没有太大关系。不过,您可以使用 Ruby 来解决这个问题。

首先像您已经在做的那样获取 Canvas 的内容:

var dataURL = canvas.toDataURL("image/png");

此时您可以简单地使用 Javascript 打开一个新窗口并直接在其中打开图像(不需要服务器交互):

var window = window.open();
window.document.write('<img src="'+dataURL+'"/>');

$('a.my-link').click(function(){
  open().document.write('<img src="'+dataURL+'"/>');
  return false;
});

这里有一个 fiddle 来说明这一点:http://jsfiddle.net/XtUFt/

或者您可以将纯 base64 字符串发送到服务器并让您的应用创建一个实际图像并使用 View 来呈现它:

var base64 = dataURL.replace(/^data:image\/(png|jpg);base64,/, "") ;
var window = window.open('http://www.yourapp.com/controller/action?base64='+base64);

!这是一个简化的示例,并假设一个非常的图像。如果您的图片无论如何都更大,则您将不得不使用“发布”请求,因为您的 URL 将不会携带数据,因为字符串太长了!

然后在服务器上您可以使用它来创建图像:

require 'base64'
File.open('your/image/path/and/name.gif', 'wb') do|f|
  f.write(Base64.decode64(params[:base64]))
end

然后这只是打开图像并相应地渲染 View 的问题。

关于javascript - 使用 ruby​​ on rails 和 javascript 将 Canvas 转换为图像并在新窗口中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5403709/

相关文章:

ruby-on-rails - 我可以创建一个 ID 从 0 而不是 1 自动递增的 Rails 模型吗?

ruby-on-rails - 如何在 webpacker Angular Rails 中添加 scss 加载器?

html - 如何使用CSS在div中显示图像的中间?

c# - 上传图片到数据库c#

javascript - 如何使用jquery旋转鼠标滚轮上的元素?

javascript - 如果失败但使用不同的参数来获取默认数据,则调用相同的 http 请求

mysql - 基于Rails Active Record中两列的组合进行查询

html - 在 CSS 中使图像响应

php - Symfony 2 中的 jQuery 验证

javascript - GitHub API - 使用 Angular 的 $scope 获取 url