2013-08-21 67 views
1

提交我使用Caman JS在模型项目我编辑视图来操纵图像。保存画布图像上的服务器使用Rails

$('#vintage').click(function() { 
    Caman("#preview_image", function() { 
    this.reset(); 
    this.crossProcess(100) 
    this.render(function() { 
     this.addClass('selected'); 
    }); 
    }); 
}); 

Caman JS为我提供了一个选项,以获取画布的base64值对象

var dataURL = this.toBase64(); 

但是我现在有种坚持做这个信息。理想情况下,我想在提交我的rails表单时覆盖原始图像。

任何建议将是巨大的。

回答

6

好的,我找到了一个解决方案。这是...

创建具有的base64数据的隐藏字段的值

<input id="base64" type="hidden" value="" name="base64"/> 
var dataURL = this.toBase64(); 
$('#base64').val(dataURL) 

然后我在控制器处理这一点。

unless params[:base64].empty? 
    data = params[:base64] 
    image_data = Base64.decode64(data['data:image/png;base64,'.length .. -1]) 
    File.open("#{Rails.root}/public#{@item.image.url.to_s}", 'wb') do |f| 
    f.write image_data 
    end 
    // Carierwave method to regenerate thumbnails 
    @item.image.recreate_versions! 
end 

可能会帮助别人,我还是肯定愿意将更好或更有效的方式来做到这一点建议。

+0

伙伴!你刚刚救了我很多心痛! – typicalk

相关问题