我有一个带有注册页面的 Rails 应用程序,用户可以在其中填写详细信息。我想为用户的图片添加一个字段:而不是上传它,我希望用户使用他们的网络摄像头拍照。图片应该保存到磁盘和数据库中,并使用其名称和路径进行更新。
我怎样才能做到这一点?我知道存储以前是由 处理的,paperclip但现在是使用 完成的Active Storage,但是使用网络摄像头呢?谷歌搜索“ruby gem 网络摄像头”并将结果限制在去年的结果令人惊讶地没有帮助,大多数结果都与色情相关。
我有一个带有注册页面的 Rails 应用程序,用户可以在其中填写详细信息。我想为用户的图片添加一个字段:而不是上传它,我希望用户使用他们的网络摄像头拍照。图片应该保存到磁盘和数据库中,并使用其名称和路径进行更新。
我怎样才能做到这一点?我知道存储以前是由 处理的,paperclip但现在是使用 完成的Active Storage,但是使用网络摄像头呢?谷歌搜索“ruby gem 网络摄像头”并将结果限制在去年的结果令人惊讶地没有帮助,大多数结果都与色情相关。
如果你想使用网络摄像头,那么你需要在 JavaScript 中处理这方面的事情。您需要使用getUserMediaAPI来访问相机流。完成后,您可以通过将相机中的帧写入画布来捕获静止图像,然后将画布导出为带有Canvas.toDataBlob.
一些浏览器公开了对相机的更多访问权限以捕获图像,但您最终仍会得到一个 blob。
一旦你得到它,你可以将它添加到一个FormData对象并提交到你的 Rails 应用程序,此时 Active Storage 可以接管存储文件。