Canvas 入門 (3): 画像処理と描画 Text_html/css_WEB-ITnose
出典: http://www.ido321.com/997.html
1. 画像処理 (特に指定がない限り、すべての結果は最新バージョンの Google からのものです)
HTML 5 では、次のことができるだけでなく、グラフィックスを描画するための Canvas API を使用して、ネットワークまたはディスク上の画像ファイルを処理し、それらをキャンバス上に描画することもできます。画像を描画するときは、drawImage() メソッドを使用する必要があります:
drawImage(image,x,y): image は画像参照、x,y は画像を描画するときのキャンバス内の開始位置です
drawImage( image,x,y ,w,h): 最初の 3 つは上記と同じです。w、h は描画時の画像の幅と高さであり、画像の拡大縮小に使用できます
drawImage(image,sx, sy,sw,sh,dx,dy,dw.dh) : キャンバス上に描画されたイメージの全部または一部を、キャンバス上の別の場所にコピーします。 sx、sy、sw、sh はそれぞれ、元のイメージ内のコピー領域の開始位置、幅、高さであり、dx、dy、dw、dh は、キャンバス内のコピーされたイメージの開始位置、高さ、幅を表します。 ...
1: // 获取canvas 的ID
2: var canvas = document.getElementById('canvas');
3: if (canvas == null)
4: {
5: return false;
効果:
1. 画像タイル
6: }
7: // 获取上下文
8: var context = canvas.getContext('2d');
9: context.fillStyle = '#eeeeff';
10: context.fillRect(0,0,400,300);
11: var image = new Image();
13: image.onload = function()
14: {
15: drawImage(context,image);
16: };
17: function drawImage(context,image)
18: {
19: for (var i = 0; i < 7; i++) {
20: context.drawImage(image,0+i*50,0+i*25,100,100);
21: };
22: }
1: // 获取canvas 的ID
2: var canvas = document.getElementById('canvas');
3: if (canvas == null)
タイリングも実現できます (画像は拡大縮小されていないため、元の画像サイズです)
2. 画像のトリミング
4: {
5: return false;
6: }
7: // 获取上下文
8: var context = canvas.getContext('2d');
9: context.fillStyle = '#eeeeff';
10: context.fillRect(0,0,400,300);
11: var image = new Image();
12: image.src = 'my.jpg';
効果:
3.ピクセル処理
13: // onload事件实现边绘制边加载
14: image.onload = function()
15: {
16: drawImage(canvas,context,image);
17: };
18: function drawImage(canvas,context,image)
19: {
20: // 平铺比例
21: var scale = 5;
22: // 缩小图像后宽度
23: var n1 = image.width / scale;
24: // 缩小图像后高度
25: var n2 = image.height / scale;
26: // 横向平铺个数
27: var n3 = canvas.width / n1;
28: // 纵向平铺个数
29: var n4 = canvas.height / n2;
30: for(var i = 0; i < n3; i++)
31: {
getImageData(sx,sy,sw,sh): ピクセルの取得の開始を示しますarea 座標、高さ、幅。幅、高さ、データなどの属性を持つ CanvasPixelArray オブジェクトを返します。データ属性には [r1, g1, b1, a1, r2, g2、b2、a2...]、r1、g1、b1、a1 は、それぞれ最初のピクセルの赤、緑、青の値と透明度などです。
putImageData(imagedata,dx,dy[,dirtyx,dirtyy,dirtyWidth,dirtyHeight]): ピクセル データを画像上に再描画します。 imagedata はピクセル配列、dx、dy は再描画の開始位置を表し、次の 4 つのパラメータは長方形の左上隅の座標と高さと幅を示します。
Canvas API のピクセル操作は一部のブラウザでのみサポートされています
2. テキストを描画します
32: for(var j=0; j < n4; j++)
33: {
34: context.drawImage(image,i*n1,j*n2,n1,n2);
35: }
36: }
37: }
1: image.onload = function()
2: {
3: // drawImage(canvas,context,image);
4: var ptrn = context.createPattern(image,'repeat');
5: context.fillStyle = ptrn;
6: context.fillRect(0,0,400,300);
fillText(string,x,y[,maxwidth]): 最初の 3 つは説明されていません。これにより、テキストのオーバーフローを防ぐことができます。 y[,maxwidth]: 上記と同じです
テキスト属性設定
font: フォントを設定します
textAlign: 水平方向の配置、値は start/end/left/right/center です。デフォルトは start
textBaseline:垂直方向の配置。値は、top/hanging/middle /alphabetic/ideographic/bottom です。デフォルトは、alphabetic です
最終効果
次の記事: 9 つの JQuery と 5 つの JavaScript の古典的な面接の質問

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします
