图片在canvas中显示,给canvas添加文字,文字描边,将canvas保存成图片下载到本地

徐同保的博客 徐同保的博客     2022-12-03     336

关键词:


图片在canvas中显示,给canvas添加文字,文字描边,将canvas保存成图片下载到本地_html

 

 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>
图片在canvas中显示,给canvas添加文字,文字描边,将canvas保存成图片下载到本地
</title>
</head>
<body>
<div>
<canvas id="canvas" width="1280" height="720"></canvas>
</div>
<script>
// base64转Blob对象
const base64ToBlob = (code) =>
let parts = code.split(;base64,)
let contentType = parts[0].split(:)[1]
let raw = window.atob(parts[1])
let rawLength = raw.length
let uint8Array = new Uint8Array(rawLength)
for (let i = 0; i < rawLength; i++)
uint8Array[i] = raw.charCodeAt(i)

return new Blob([uint8Array], type: contentType )


const download = (dataUrl, fileName) =>
let aLink = document.createElement(a)
let blob = base64ToBlob(dataUrl)
let event = document.createEvent(HTMLEvents)
event.initEvent(click, true, true)
aLink.download = fileName + . + blob.type.split(/)[1]
aLink.href = URL.createObjectURL(blob)
aLink.click()

const init = () =>
let canvas = document.getElementById(canvas)
let ctx = canvas.getContext(2d)
let image = new Image()
image.crossOrigin = anonymous
//image.src = ./1280.png
image.src =
http://localhost:85/video/grade1/chinese1-img/%E6%88%AA%E5%9B%BE%20(1).png?time=1662633780355
image.onload = function ()
ctx.drawImage(image, 1, 1)
ctx.lineWidth = 5
ctx.font = 40px Verdana
let title = 10【汉语拼音】第7课、第8课:z c s 和zh ch sh r
let tempTitleArr = []
for (let i = 0; i < title.length; i = i + 16)
let tempTitle = title.slice(i, i + 16)
tempTitleArr.push(tempTitle)

if (
tempTitleArr.length > 2 &&
tempTitleArr[tempTitleArr.length - 1].length < 8
)
tempTitleArr[tempTitleArr.length - 2] =
tempTitleArr[tempTitleArr.length - 2] +
tempTitleArr[tempTitleArr.length - 1]
tempTitleArr.splice(tempTitleArr.length - 1, 1)

console.log(tempTitleArr)
tempTitleArr.forEach((item, index) =>
ctx.strokeStyle = #ff3333
ctx.strokeText(item, 10, 100 * (index + 1))
ctx.fillStyle = #ffff00
ctx.fillText(item, 10, 100 * (index + 1))
)
const dataUrl = canvas.toDataURL(image/png)
console.log(dataUrl)
download(dataUrl, 截图)


init()
</script>
</body>
</html>

android给图片添加文字和水印

参考技术A话不多说上图在Activity中获取到ImageView对象,并且获取Bitmap对象,对Bitmap进行canva绘图,添加水印添加一个布局,上面是原始图片,下面是添加水印后的图片 查看详情

canvas文字丢失

...的原因,可以尝试重新创建一个新的Canvas对象来实现文字显示。也可以尝试更改字体、文字大小等因素,看看是否可以恢复文字显示。 参考技术Bcanvas文字丢失Canvas文字丢失可能是由于没有设置正确的字体大小或字体样式导致的... 查看详情

如何在edittext中显示提示文字

...ndroid:drawableLeft属性来实现。首先做一个带有提示文字的图片,即提示文字当作图片来显示,透过android:drawableLeft指定资源的ID。这种方法不灵活,不可随意更改提示文字,需要更换图片。2.2.透过android:paddingLeft属性和Canvas来... 查看详情

canvas转图片中的文字自动换行(代码片段)

概述最近项目用到了canvas转图片,但是由于canvas对文字排版的支持非常弱,一般我们在canvas上画不同排版的文字(比如竖排文字)都是利用js计算横纵坐标,然后一个字一个字地画出来,今天无意中看到一个使用svg的方法,记录... 查看详情

为图片添加文字canvas

<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>无标题文档</title></head><body><canvasid=‘myCanvas‘>& 查看详情

使用html2canvas将html转为canvas图片

...it;隐藏该表格.点击按钮的时候使用html2canvas把需要转换成图片的dom元素转换成canvas对象,通过onclone回调方法将在canvas对象中找到该表格元素进行显示,返回的canvas图片对象可以通过drawImage()方法添加在canvas画布中. 查看详情

android怎样实现在图片上任意位置添加文字要代码急求。。

android在图片上任意位置添加文字,可以使用canvas类进行操作,实例如下:@Override protected void onDraw(Canvas canvas)   super.onDraw(canvas);  canvas.drawBitmap(m_LogInBmp, null, m_LogIndst, m_txBackPaint);    float tleft = m_LogIndst.left + (m_LogIndst... 查看详情

说说在canvas中如何添加阴影

...数可以用于设置阴影相关属性。我们有一张500×500像素的图片。现在为其添加一个往左上偏移的阴影。运行结果:图片来源于网络。示例略作修改,就可以为图片设置右下阴影效果:运行结果:修改阴影颜色为深空灰:运行结果... 查看详情

前端小程序——js+canvas给图片添加水印

市场上各种各样的图片处理器有很多,那么作为程序员的我们是不是应该自己做一个呢?那就从加水印开始吧html:<canvasid="shuiyinTest"></canvas><div><inputid="shuiyinText"value=""type="text"/><buttonid="shuiyinBtn"class="mui-btnmui 查看详情

html2canvas页面截图图片不显示

...群里,有人问使用html2canvas屏幕截图的时候为什么页面的图片不显示只显示了文字,我没有做过屏幕截图的需求,所以不是很清楚,今天稍稍测试了一下。在github上将html2canvas源码下载到本地,examples文件夹里有三个示例demo,这... 查看详情

canvas文字换行(代码片段)

引子近期的工作中,遇到的功能需求,需要控制文字显示行数,超过就省略号显示。OriginMyGitHub文字换行一般文字行数控制用css就可以实现,但在canvas中不行。在网站查询资料,就可以发现需要程序控制文字换行,主要使用到的... 查看详情

canvas中的那些坑

年前做了一个合成图片的小工具,需求大体为:用户输入要在一整张大图片显示的文字、图片及它们所在大图的坐标,合成一张大图用来干啥干啥。做法当然是用canvas做的。canvas就不细说了,来说说他的坑吧。坑之一:输入的文... 查看详情

html5canvas怎么载入图像

参考技术A  在canvas中显示图片非常简单。可以通过修正层为图片添加印章、拉伸图片或者修改图片等,并且图片通常会成为canvas上的焦点。用HTML5CanvasAPI内置的几个简单命令可以轻松地为canvas添加图片内容。  不过,图片增... 查看详情

[canvas,js,fileapi]图片转文字

语言:javascriptAPI及元素:canvas,fileAPI读取图片像素值,变化为灰度,根据画面设定,替换为文字显示---效果图【福字】:猜猜下面是什么:【金鸡】原图:继续猜猜:源码非常简单:1<html>2<head>3<title>pic2Str</title>4... 查看详情

HTML5 Canvas:图像上的文本绘制在图像更改时停止显示

...户选择的图像和一些文本。也就是说,用户可以上传一张图片,然后如果他们愿意,他们可以添加文字或者只是改变图片的渐变。目前该应用程序运 查看详情

解决canvas在高清屏中绘制模糊的问题(代码片段)

来源: http://www.css88.com/archives/9297使用canvas绘制图片或者是文字在Retina屏中会非常模糊。如图:因为canvas不是矢量图,而是像图片一样是位图模式的。高dpi显示设备意味着每平方英寸有更多的像素。也就是说二倍屏,浏览器... 查看详情

html5canvas怎么载入图像

  在canvas中显示图片非常简单。可以通过修正层为图片添加印章、拉伸图片或者修改图片等,并且图片通常会成为canvas上的焦点。用HTML5CanvasAPI内置的几个简单命令可以轻松地为canvas添加图片内容。  不过,图片增加了canvas... 查看详情

Discord.JS,使用 Canvas 在 For 循环中显示多个用户个人资料图片

】Discord.JS,使用Canvas在For循环中显示多个用户个人资料图片【英文标题】:Discord.JS,DisplayingmultipleuserProfilePicturesinForLoopusingCanvas【发布时间】:2021-09-1517:59:55【问题描述】:我正在使用Canvas创建用户排行榜,所有统计数据都运行... 查看详情