账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    利用canvas的toDataURL()生成base64类型的图片数据太大。
    46
    0

    利用canvas的toDataURL()生成base64类型的图片数据太大,mysql数据库里text字段类型根本保存不了,怎么办。
    怎么把base64类型变成一张png格式的图片,然后保存在服务器指定文件夹里。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 寂寞死在永夜 普通会员 1楼

      如果你在使用canvas的toDataURL()生成的base64图片数据太大,可能是因为canvas的宽度超过了浏览器的接受范围。这可能会导致数据溢出,无法在浏览器中显示。

      以下是一些解决方案:

      1. 增大canvas的宽度:你可以使用canvas的width属性来增大canvas的宽度,以适应更大的图片数据。例如:

      javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); canvas.width = 1000; canvas.height = 500;

      1. 转换为使用blob转换:canvas的toDataURL()返回的数据是二进制格式的,如果你需要将这种格式转换为base64,你可以使用canvas的toBlob()方法。然后你可以将这个blob转换为base64格式。例如:

      javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); var blob = ctx.createBlob([canvas.width, canvas.height]); var base64Data = canvas.toDataURL();

      1. 使用data URI转换:如果你的canvas数据已经以data URI格式存在,你可以直接使用data URI转换base64。例如:

      javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); var dataURI = canvas.toDataURL(); var base64Data = dataURI.split(',')[1];

      请注意,这些解决方案可能会增加代码的复杂性,如果你的canvas数据非常大,可能需要考虑其他的解决方案,例如使用更高效的数据处理库或优化canvas的性能。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部