小程序
小游戏
企业微信
微信支付
扫描小程序码分享
画布尺寸不变,图片有什么好的办法在不变更尺寸的情况下,宽度自适应的和画布一样,高度根据原始尺寸不动
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
canvas 里面单位是 px
要手动把图片宽度设置为 canvas 的宽度,根据新宽度计算出新的高度,然后在画。无法自动适应
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
function drawImage(config) {
const { top, left, width, height, url, round } = config
const img = canvas.createImage()
img.src = url
return new Promise((resolve, reject) => {
// 绘制图片时宽度 100% 垂直方向居中截取
img.onload = () => {
CTX.save()
CTX.beginPath()
CTX.rect(left, top, width, height)
CTX.clip()
const newHeight = width / img.width * img.height
const topOffset = (newHeight - height) / 2
CTX.drawImage(img, left, top - topOffset, width, newHeight)
CTX.restore()
resolve()
}
img.onerror = reject
})
宽度自适应,高度不变那不是拉伸了吗?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
canvas 里面单位是 px
要手动把图片宽度设置为 canvas 的宽度,根据新宽度计算出新的高度,然后在画。无法自动适应
function drawImage(config) {
const { top, left, width, height, url, round } = config
const img = canvas.createImage()
img.src = url
return new Promise((resolve, reject) => {
// 绘制图片时宽度 100% 垂直方向居中截取
img.onload = () => {
CTX.save()
CTX.beginPath()
CTX.rect(left, top, width, height)
CTX.clip()
const newHeight = width / img.width * img.height
const topOffset = (newHeight - height) / 2
CTX.drawImage(img, left, top - topOffset, width, newHeight)
CTX.restore()
resolve()
}
img.onerror = reject
})
}
宽度自适应,高度不变那不是拉伸了吗?