时间:2019-05-07 来源:小程序工厂
那个我请问一下,我是直接在服务器上拿到一个图片路径用canvas画出来就行,我这边也是真机显示不出来但是开发者工具可以,是不是图片太大了,后台传过来的图片有2m
网络路径 是需要先保存到本地才可以 切记是保存不是缓存
不需要保存到本地,我们用的就是wx.canvasToTempFilePath
用 wx.saveImageToPhotosAlbum 存不了么
不是保存,现在是绘制图片到画布上,真机不显示,模拟器显示,相关域名都配置上了,打印看到的是地址返回不一样;
真机是:wxfile://tmp_ef7d896c70dbbba1bedbb50c83f6ee1f.png
模拟器是:"http://tmp/wxeec88be8ab307f36.o6zAJs3jHQ-GYaUX35iOhX45rqvA.HLGQBJZODyTK7e6afe93405e336a7ee85d72931f7efd.png"
canvasToTempFilePath是把画布保存成临时文件。你是画布都显示不了吗?
开发工具可以,真机不行
真机打开调试,如果可以的话,说明你白名单配置得有问题。
如果不可以,可能需要你做个代码片段,或者贴下代码了
开发工具返回的地址就是http://tmp/....
真机返回的地址就是wxfile://.....
不知道原因出在哪里
能提供一个代码片段吗?
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
不好意思啊,这边给你贴代码可以吗?
drawImg() {
let _this = this;
let path = `/pages/index/info/info?id=${this.data["id"]}`;
let access_token = {
"path": path,
"width": 183
};
let ctx = wx.createCanvasContext('mycanvas');
let item = this.data.info;
let imgUrl = this.data.imgUrls[0];
console.log(imgUrl);
wx.showLoading({
title: '绘制中...',
})
wx.getImageInfo({
src: imgUrl,
success: function(res) {
console.log(res);
let imgpath = res.path;
let imgvs = res.width / res.height;
wx.createSelectorQuery().select('#mycanvas').boundingClientRect(function(rect) {
let width = rect.width;
let height = rect.height;
let v = width / 319;
let imgwidth = 0,
imgheight = 0;
if (imgvs > 1) {
imgheight = width;
imgwidth = width * imgvs;
} else if (imgvs == 1) {
imgwidth = width, imgheight = width;
} else {
imgwidth = width;
imgheight = width / imgvs;
}
// ctx.drawImage(imgpath, (width - imgwidth) / 2, 0, imgwidth, imgheight);
ctx.drawImage(item['images'][0], (width - imgwidth) / 2, 0, imgwidth, imgheight);
ctx.setFillStyle("#fff")
ctx.fillRect(0, 259.5 * v, width, height);
ctx.setFontSize(24 * v);
ctx.setFillStyle('#000');
ctx.fillText(item["pet_name"], 14.5 * v, 290.5 * v);
ctx.setFontSize(13 * v);
ctx.fillText("品种", 14.5 * v, 320 * v);
ctx.fillText("生日", 14.5 * v, 350 * v);
ctx.fillText("性别", 14.5 * v, 380 * v);
ctx.setFillStyle('#797979');
ctx.fillText(item["species"], 84.5 * v, 320 * v);
ctx.fillText(item["birthday"], 84.5 * v, 350 * v);
ctx.fillText(item["pet_sex"], 84.5 * v, 380 * v);
ctx.fillText("长按图片扫一扫", 205 * v, 423.5 * v);
ctx.drawImage(_this.data.ewmPath, 205 * v, 310 * v, 93.5 * v, 88.5 * v);
ctx.drawImage("../../../images/b0.png", 14.5 * v, 400 * v, 41 * v, 16 * v);
ctx.drawImage("../../../images/b1.png", 64.5 * v, 400 * v, 41 * v, 16 * v);
ctx.drawImage("../../../images/b2.png", 114.5 * v, 400 * v, 41 * v, 16 * v);
ctx.setFontSize(9 * v);
ctx.setFillStyle('#fff');
ctx.fillText(item['repellent_time'], 21.5 * v, 411 * v);