首页 新闻 会员 周边 捐助

代码实现图片上替换文字

0
悬赏园豆:100 [待解决问题]

在小程序中如何实现根据输入的文字替换图片上固定地方的文字。麻烦大佬给个实现的思路

乐言z的主页 乐言z | 初学一级 | 园豆:102
提问于:2024-08-08 17:47
< >
分享
所有回答(4)
1
  1. 先准备一个不包含文字的图片;
  2. 把要绘制的文字,绘制到一张空白图片上;
  3. 对图片进行错切变换【3*3的矩阵】;
  4. 画到背景图上
// js文件
Page({
  data: {
    newImagePath: '',
  },
  handleInput(e) {
    this.setData({
      inputText: e.detail.value,
    });
  },
  handleReplace() {
    const canvas = wx.createCanvasContext('myCanvas');
    // 绘制原始图片作为背景
    canvas.drawImage('原始图片路径', 0, 0, 图片宽度, 图片高度);
    
    // 设置文字样式
    canvas.setFontSize(24);
    canvas.setFillStyle('red');
    
    // 错切变换
    const shearX = 0.2; // 水平错切角度
    const shearY = 0.1; // 垂直错切角度
    canvas.transform(1, shearY, shearX, 1, 0, 0);
    
    // 在固定位置绘制用户输入的文字
    canvas.fillText(this.data.inputText, 100, 100);
    
    canvas.draw(false, () => {
      // 导出新图片的临时路径
      wx.canvasToTempFilePath({
        canvasId: 'myCanvas',
        success: (res) => {
          this.setData({
            newImagePath: res.tempFilePath,
          });
        },
      });
    });
  },
});

shunlibest | 园豆:241 (菜鸟二级) | 2024-08-08 18:23

好像有兼容问题,在模拟器调好样式后,到手机上就变了。

支持(0) 反对(0) 乐言z | 园豆:102 (初学一级) | 2024-08-09 16:46
0

我的想法是这样,不知道对不对
先把他的源代码扒出来,然后源码审计出要做修改的地点
然后进行更改

单字个6 | 园豆:360 (菜鸟二级) | 2024-08-09 17:06

谁的源代码,他这个小程序的吗?我扒到他的接口了,他是接口处理后返回了图片

支持(0) 反对(0) 乐言z | 园豆:102 (初学一级) | 2024-08-09 17:28

@乐言z: 如果你这个是微信小程序的话,你可以在缓存中找到它的缓存文件
然后再利用工具进行反编译获取js源码

支持(0) 反对(0) 单字个6 | 园豆:360 (菜鸟二级) | 2024-08-09 17:41

@单字个6: 是小程序,但是应该意义不大,他是接口处理的图片

支持(0) 反对(0) 乐言z | 园豆:102 (初学一级) | 2024-08-09 18:48

@乐言z: 你可以进行小程序抓包来修改你想要的内容
也可以继续利用此接口来进行未授权访问

支持(0) 反对(0) 单字个6 | 园豆:360 (菜鸟二级) | 2024-08-09 19:09
0

抠图然后贴上去。我作为一个连CSPJ都没AK的蒟蒻丢下这句话跑路了(逃

NightWatchman | 园豆:202 (菜鸟二级) | 2024-08-11 15:08
0

//绘制背景图,在指定位置放一个label;
//给个按键和输入框,按键按下事件将输入框内容设置到label;
label.setText("内容");
这样?

文姬的九命猫 | 园豆:224 (菜鸟二级) | 2024-08-11 16:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册