收藏
回答

canvas将文字图片绘制至画布再导出为什么都是都是模糊的?

canvas将文字图像(drawImage)绘制到画布上,再把当前画布图像内容导出生成图片draw(false, () => {wx.canvasToTempFilePath(Object object, Object this)}),合成后的图片都是模糊的,无论在开发者工具或是真机调试都是模糊的。请问canvas处理图像(如,resize或其他合成操作),再导出图像都是模糊失真的吗?

   // 将图像绘制到画布,width&height为图像等比例缩放后的宽高,originWidth&originHeight为图像原图宽高
   this.ctx.drawImage(path, x, y, width, height) 
   // 将在绘图上下文中的描述(路径、样式)画到 canvas 中,并把当前画布指定区域的内容导出生成指定大小的图片
    this.ctx.draw(false, () => {
      Taro.canvasToTempFilePath({
        canvasId: this.ctx.canvasId,
        x,
        y,
        width: originWidth,
        height: originHeight,
        destWidth: originWidth,
        destHeight: originHeight,
        // width: this.canvasWidth,
        // height: this.canvasHeight,
        // destWidth: this.canvasWidth,
        // destHeight: this.canvasHeight,
        // quality: 1,
        success: (res) => {
          console.log('导出新图:', res.tempFilePath)
          Taro.saveImageToPhotosAlbum({
            filePath: res.tempFilePath
          })
        }
      }, this)
    })
最后一次编辑于  2020-01-03
回答关注问题邀请回答
收藏

2 个回答

  • 小º豆儿
    小º豆儿
    2020-01-07

    模糊问题,确实是和像素密度有关 pixelRatio

    2020-01-07
    有用
    回复
  • 加肥猫
    加肥猫
    2020-01-03

    canvas设置成两倍大试试?

    2020-01-03
    有用
    回复 8
    • 小º豆儿
      小º豆儿
      2020-01-03
      不行,还是很模糊
      2020-01-03
      回复
    • 加肥猫
      加肥猫
      2020-01-03回复小º豆儿
      整理个代码片段?让网友帮你调试
      2020-01-03
      回复
    • 小º豆儿
      小º豆儿
      2020-01-03
      2020-01-03
      回复
    • 小º豆儿
      小º豆儿
      2020-01-03
      2倍大更模糊
      2020-01-03
      回复
    • 小º豆儿
      小º豆儿
      2020-01-03回复加肥猫
      谢谢,上面补充了一点代码
      2020-01-03
      回复
    查看更多(3)
登录 后发表内容
问题标签