Canvas は JavaScript を通じて 2D グラフィックを描画します。キャンバスはピクセルごとにレンダリングされます。キャンバスでは、グラフィックが描画されると、ブラウザーの注目を集めなくなります。位置が変更された場合は、グラフィックスで覆われているオブジェクトも含めて、シーン全体を再描画する必要があります。
canvasはピクセルの基本的な処理操作を実装します
// ピクセルデータを取得します
var Canvas = document.getElementById('CanvasElt');
var ctx = Canvas.getContext('2d');
// Canvasのピクセル情報を取得しますで、
//x はコピーが開始される左上隅の x 座標です。
//y コピーを開始する左上隅の y 座標。
//width コピーされる長方形領域の幅。
//heightコピーされる長方形領域の高さ。
var CanvasData = ctx.getImageData(x, y, Canvas.width, Canvas.height);
// ピクセル情報を書き込む
ctx.putImageData(canvasData, 0, 0);
取得した CanvasData オブジェクトには以下のメンバーが含まれます。データ配列の構造は大まかに次のようになります。行ごとに格納され、列点は 4 つの添字を占めます。これは RGBA です (ここでの y は (下位))。順方向)、RGBA は data[(ywidth+x)4]、data[(ywidth+x)4+1]、data[(ywidth+x)4+2]、data[(ywidth+x)4 +3 ]。 ピクセルを取得できれば、ピクセルを操作できます。最も簡単な方法は、各フェーズの r、g、b を加算して平均することです。 、そしてそれらをそれぞれ r、g、b に割り当てます。
//グレースケール処理
function grey() {
var imageData = ctx1.getImageData(0, 0, canvas1.width, canvas1.height); for(var i = 0; i <p>}<br>ピクセルの否定: 255 は対応する rgb 値を減算し、それを元の RGB 値に割り当てます。元の rgb 値はランダムに加算または減算されます。値は乱数です。では、コントラストが変化した写真やぼやけた写真を取得したい場合はどうすればよいでしょうか? コンボリューション カーネル: 画像処理の分野で最も一般的に使用されるコンボリューション カーネルは、以下の図に示すように、いわゆる行列のコンボリューションです。赤いボックス内の値を計算するときは、まず周囲の緑色の 8 つの数値を抽出します。次に、適用された行列内の対応する位置を乗算し、その積を加算して最終値を取得します。 <br> <br>例: (40 x 0)+(42 x 1)+(46 x 0)+ (46 x 0)+(50 x 0)+(55 x 0)+ (52 x 0)+(56 x 0 )+(58 x 0)= 42 では、どうすればぼやけた画像を取得できるでしょうか?画像のピクセルと行列 [1,1,1,1,1,1,1,1,1] は、コンボリューション カーネルを見つけるために使用されます。このときのピクセルは 255 を超える可能性があるため、基数で割ります。得られる画像はぼかしフィルターを使用した画像です。 1. 白い画像の明るさを上げます。 2. 黒を暗くして、最小の明るさを下げます。 0,3,0,0 ,0,0] コンボリューション カーネル。255 を超えて、適切な基数 150 を減算することもできます。次に、コンボリューション カーネル関数が必要です。関数の最初のパラメーターは、上の imageData オブジェクトです。キャンバスであり、2 番目のパラメータが入力行列に対応する配列である場合、次の行列 a b c d e f g h i である場合、渡される 2 番目のパラメータは [a,b,c,d,e,f,g,h,i である必要があります。 ]、3 番目のパラメータは除数係数です。 4 番目のパラメータはオフセットです。 <br>function ConvolutionMatrix(input, m, pisor, offset) {</p><pre class="brush:php;toolbar:false">var output =document.createElement("canvas").getContext('2d').createImageData(input); var w = input.width, h = input.height; var iD = input.data, oD = output.data; for(var y = 1; y <p>}<br>//ぼかし処理<br>function mohu(){</p><pre class="brush:php;toolbar:false">var imageData = ctx1.getImageData(0, 0, canvas1.width, canvas1.height); var m = [1,1,1,1,1,1,1,1,1]; var output = ConvolutionMatrix(imageData, m, 10,0); ctx1.putImageData(output,0,0);
}
//コントラスト処理
function level(){
var imageData = ctx1.getImageData(0, 0, canvas1.width, canvas1.height); var m = [0,0,0,0,3,0,0,0,0]; var output = ConvolutionMatrix(imageData, m, 1,-150); ctx1.putImageData(output,0,0);
}
画像にも必要なデータを含めることができます
画像の各ピクセルは 4 つの RGBA 要素で構成されているため、単に画像に対して getImageData を使用して解析できるのは、知る必要のない大量のデータだけであるため、特定の色の値を独自のデータと見なすことはできますか?
例: 画像で白いピクセル (r:255,g:255:b:255,a:255) を見つけたい場合、getImageData を通じて画像のデータを取得し、各ピクセルのデータを取得できます。対応するrgbaですか? それらを抽出し、画像の幅と高さに応じて、各白いピクセルの位置情報を計算できます。
画像もより良く走査する必要があります
前のステップで、画像内の特定の要素に関連する位置情報を取得する操作はすでに理解していますが、画像がごく普通の画像の場合は、 imageData 内の各情報について、トラバースを減らすより良い方法はありますか?
答えは次のとおりです。画像のデフォルトの色は黒 (r:0,g:0,b:0,a:0) ですが、答えは必ずしも 1 つだけではありません。他にも良い方法があるかもしれませんが、原則は次のとおりです。と同じである必要があります。
各ピクセルの r を走査することにより、r!=0 の場合、このピクセルの残りの g、b、a を走査します。このステップで最も重要なことは、背景であることです。黒はすべてゼロの状態であり、計算が簡単であるため、黒を使用することをお勧めします。
もっと良い最適化はありますか?
上記の 2 つの手順に加えて、使用される画像が大きすぎるため、より多くの走査が発生します。最終的なデータが必要なものである限り、データのサイズではなくデータの抽出のみを考慮します。元の画像は数回拡大縮小でき、新しい画像を使用して取得したデータは最終的に対応する倍数で乗算され、その結果が必要なデータになります。
関連する推奨事項:
Canvasを使用してボールとマウスの相互作用を実現する方法
JavaScript+html5 Canvasの使用例画像にハイパーリンクを描画するコード
以上がキャンバス画像処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
