手で触ってcanvasで画像に平らな透かしを追加することを教えます
1829 ワード
最近のプロジェクトでは、画像に平らな透かしを付ける必要があります.
このような効果はまずcanvasでこの機能を完成させることを考えています.私はcanvasに触れたことがありませんから、この機能をするときは、一歩一歩模索して勉強します.過程はniceです.次は私と一緒にこの機能を実現し、canvasの穴を見つけましょう.
この機能に必要なのはcanvasベースのapiなので、原理的な問題もありません.ここではjsコードを直接貼ります.
html
その時にやってみたら、間違いがあった.
Googleの後、これが画像のドメイン間問題によるものであることに気づきましたが、どうやって解決しますか?
newから出てきたimgに属性を追加すればいいだけ
するとjs部分new imgのコードが
次に完成品を見てみましょう
大功を成し遂げる.
もし私の文章があなたの問題を解決したら、手当たり次第にいいねを押してください.ありがとうございます.
このような効果はまずcanvasでこの機能を完成させることを考えています.私はcanvasに触れたことがありませんから、この機能をするときは、一歩一歩模索して勉強します.過程はniceです.次は私と一緒にこの機能を実現し、canvasの穴を見つけましょう.
この機能に必要なのはcanvasベースのapiなので、原理的な問題もありません.ここではjsコードを直接貼ります.
var img = new Image();
// , ,
img.src = 'https://gd4.alicdn.com/imgextra/i3/155/O1CN01XKkJqL1D11wYZbeI2_!!155-0-lubanu.jpg_400x400.jpg';
img.onload = () => {
// canvas
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
// canvas
ctx.drawImage(img, 0, 0, 200, 200);
// canvas
for (let i = 0; i < 20; i++) {
ctx.rotate((-45 * Math.PI) / 180); //
ctx.font = "20px microsoft yahei";
ctx.fillStyle = "rgba(0,0,0,0.5)";
ctx.fillText("mmmmmmmmmmmmmmmmmmmmmmm",-300,i * 25);
ctx.rotate((45 * Math.PI) / 180); // ,
}
html
その時にやってみたら、間違いがあった.
Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
Googleの後、これが画像のドメイン間問題によるものであることに気づきましたが、どうやって解決しますか?
newから出てきたimgに属性を追加すればいいだけ
img.setAttribute("crossorigin", "crossorigin");
するとjs部分new imgのコードが
var img = new Image();
// , ,
img.setAttribute("crossorigin", "crossorigin");// , ,
img.src = 'https://gd4.alicdn.com/imgextra/i3/155/O1CN01XKkJqL1D11wYZbeI2_!!155-0-lubanu.jpg_400x400.jpg';
次に完成品を見てみましょう
大功を成し遂げる.
もし私の文章があなたの問題を解決したら、手当たり次第にいいねを押してください.ありがとうございます.