Canvas createImageData

createImageData() 方法創建新的空白 ImageData 對象。新對象的默認像素值 transparent black。

對于 ImageData 對象中的每個像素,都存在著四方面的信息,即 RGBA 值:

  • R - 紅色 (0-255)
  • G - 綠色 (0-255)
  • B - 藍色 (0-255)
  • A - alpha 通道 (0-255; 0 是透明的,255 是完全可見的)

因此 ,transparent black 表示 (0,0,0,0)。

color/alpha 以數組形式存在,并且既然數組包含了每個像素的四條信息,數組的大小是 ImageData 對象的四倍。(獲得數組大小有更簡單的辦法,就是使用 ImageDataObject.data.length)

ImageDataObject.data.length = ImageDataObject.width*ImageDataObject.height*4;

包含 color/alpha 信息的數組存儲于 ImageData 對象的?data?屬性中。

提示:在操作完成數組中的 color/alpha 信息之后,您可以使用?putImageData()?方法將圖像數據拷貝回畫布上。

?

有兩個版本的 createImageData() 方法:

1. 以指定的尺寸(以像素計)創建新的 ImageData 對象:

var imgData=context.createImageData(width,height);

2. 創建與指定的另一個 ImageData 對象尺寸相同的新 ImageData 對象(不會復制圖像數據):

var imgData=context.createImageData(imageData);

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>createImageData</title>
</head><body><canvas id='myCanvas' width='800' height='400'>your browser does not support canvas</canvas><script type="text/javascript">var c = document.getElementById('myCanvas');var ctx = c.getContext('2d');var img = new Image();img.src = 'face.jpg';img.onload = function() {// 從10,10坐標開始繪制整個圖片
        ctx.drawImage(img, 10, 10);var imgData = ctx.getImageData(50, 50, 200, 200);var imgData01 = ctx.createImageData(imgData);for (var i = 0; i < imgData01.width * imgData01.height * 4; i += 4) {imgData01.data[i + 0] = 255;imgData01.data[i + 1] = 0;imgData01.data[i + 2] = 0;imgData01.data[i + 3] = 255;}ctx.putImageData(imgData01, 10, 260);var imgData02 = ctx.createImageData(100, 100);for (i = 0; i < imgData02.width * imgData02.height * 4; i += 4) {imgData02.data[i + 0] = 255;imgData02.data[i + 1] = 0;imgData02.data[i + 2] = 0;imgData02.data[i + 3] = 155;}ctx.putImageData(imgData02, 220, 260);};</script>
</body></html>

?

轉載于:https://www.cnblogs.com/stono/p/4670258.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397786.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397786.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

青島計算機類職業中學,青島最好的職業學校有哪些?

青島海洋職業學校是一所由青島市教育局批準&#xff0c;國家承認學歷的重點中等職業學校。學校占地200余畝&#xff0c;建筑面積5萬平方米&#xff0c;在籍學生3975人。學校擁有雄厚的師資力量&#xff0c;以專職教師為主&#xff0c;是一支政治素質好&#xff0c;師德水平高、…

測試1

2018/06/03 測試我的隨筆轉載于:https://www.cnblogs.com/xixirui/p/9129252.html

使用Javascript正則表達式來格式化XML內容

2019獨角獸企業重金招聘Python工程師標準>>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head><meta http-equivcontent-type content"text/html; charsetUTF-8"><title>Xml格式化…

mysql vfp_vfp+mysql問題|交流區 - 梅子Visual FoxPro 編程 - Powered by phpwind

感謝樓上,請現場指導,拜謝c_pzwhfiellist""c_pzwhbglist""For i1 To Fcount()-1c_pzwhfiellistc_pzwhfiellistField(i)","c_pzwhbglistc_pzwhbglistField(i)Space(1)"pzwhk."Field(i)","Chr(10)Endforc_pzwhfiellistc_pzwhf…

Nginx 筆記與總結(3)配置虛擬主機

Nginx 重啟的另外一種方式&#xff0c;相當于 kill -HUP cat /usr/local/nginx/logs/nginx.pid&#xff1a; /usr/local/nginx/sbin/nginx -s reload停止 Nginx 的另外一種方式&#xff1a; /usr/local/nginx/sbin/nginx -s stop重讀日志文件的另一種方式&#xff0c;相當于 …

計算機如何查找目標,如何使用命令行查找計算機地理位置? | MOS86

有多種方法可以從IP地址中了解計算機的位置&#xff0c;但如果您決定使用命令行查找信息&#xff0c;那么您如何處理&#xff1f;今天今天的問題Screenshot由Paul Fenwick(Flickr)提供。問題SuperUser閱讀器AlikElzin-kilaka想知道如何找到一臺電腦首先&#xff0c;AlikElzin-k…

Nmap命令的常用實例

一、Nmap簡介 nmap是一個網絡連接端掃描軟件&#xff0c;用來掃描網上電腦開放的網絡連接端。確定哪些服務運行在哪些連接端&#xff0c;并且推斷計算機運行哪個操作系統&#xff08;這是亦稱 fingerprinting&#xff09;。它是網絡管理員必用的軟件之一&#xff0c;以及用以評…

mysql sqlexception_c-很奇怪-mysql的sql :: SQLException未被其類型捕...

我正在使用帶有此(稍微簡化)代碼的mysql c連接器.try{statement->setString(1, word);statement->executeUpdate();}catch( sql::SQLException& e ){// I dont get herereturn sqlerrno_to_error_code( e.getErrorCode() );}catch( std::exception& e ){// I do …

Linux Kernel系列 - 黃牛X內核代碼凝視

Hanks.Wang - 專注于操作系統與移動安全研究。Linux-Kernel/SELinux/SEAndroid/TrustZone/Encription/MDM Mail - byhankswanggmail.com 牛X的內核代碼凝視 大牛的代碼質量高穩定性好&#xff0c;并且邏輯清晰易讀性比較強&#xff0c;今天看到Linux Kernel紅黑樹的代碼時&a…

電子商務計算機網絡安全技術教案,網絡安全技術教案.pdf

名師精編 優秀教案《網絡安全技術》教案2011-2012 第 2 學期適用班級&#xff1a; 2010 級計算機網絡技術專業編寫&#xff1a;徐英武名師精編 優秀教案第 1~2 課時周次 &#xff11; 日期 2012 年 02 月 14 日 授課班級 2010 級計算機網絡技術課題 網絡安全概述 課 型 理論課教…

技術文章匯總

點擊以下鏈接&#xff0c;可以查看相關技術文章&#xff1a;包括APP軟件開發、手機軟件開發、嵌入式開發、Java和C/C編程&#xff0c;同時涉及原型設計、效果圖設計、切圖、網絡、多媒體、加密、字符編碼、通信原理、測試和項目管理等各方面的知識。APP開發實戰手機開發實戰技術…

咋樣查mysql的url_eclipse用jdbc連接mysql數據庫時,url是填什么?怎樣找出地址?

展開全部 jdbc連接mysql數據62616964757a686964616fe78988e69d8331333337623535庫的url為: jdbc:mysql://主機名或IP抵制:端口號/數據庫名?useUnicode=true&characterEncoding=UTF-8 jdbc連接其他數據庫的連接字符串寫法為:1、Oracle8/8i/9i數據庫(thin模式) Class.for…

HP服務器ile進系統,HP GEN10服務器UEFI安裝Windows Sverver 2012 R2教程

1.操作系統&#xff1a;Windows Server 2012 R2 VL with Update (x64) – DVD (Chinese-Simplified)&#xff0c;MSDN下載地址&#xff1a;ed2k://|file|cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso|5545527296|BD499EBCABF406AB82293DD8A5803493|/2.鏡像寫…

[程序設計語言] 堆和棧的全面總結

操作系統堆棧&#xff1a; 分配由編譯器自己主動和自己主動釋放。對應于堆棧的函數。參數存儲功能值、函數調用結束后完成值和局部變量的函數體內。段內存空間。其操作和組織方式與數據結構中的棧十分相似。棧是為了運行線程留出的內存空間。當調用函數時創建棧。當函數運行完畢…

py文件的操作

文件操作基本流程。 計算機系統分為&#xff1a;計算機硬件&#xff0c;操作系統&#xff0c;應用程序三部分。 我們用python或其他語言編寫的應用程序若想要把數據永久保存下來&#xff0c;必須要保存于硬盤中&#xff0c;這就涉及到應用程序要操作硬件&#xff0c;眾所周知&a…

CentOS系統啟動流程你懂否

一、Linux內核的組成相關概念&#xff1a;Linux系統的組成部分&#xff1a;內核根文件系統內核&#xff1a;進程管理、內存管理、網絡協議棧、文件系統、驅動程序。IPC(Inter-Process Communication進程間通信):就是指多個進程之間相互通信&#xff0c;交換信息的方法。Linux I…

怎樣用css設置圖片下的投影,css – 做這種投影的最佳方法是什么?

如果您更喜歡使用CSS來創建該類型的陰影,則可以將CSS3用作seen here!CSS/* Lifted corners */.lifted {-moz-border-radius:4px;border-radius:4px;}.lifted:before,.lifted:after {bottom:15px;left:10px;width:50%;height:20%;max-width:300px;-webkit-Box-shadow:0 15px 10p…

mysql 排版 指令_Mysql語句排版

SQL 高效排版指北統一 SQL 排版的相關用法&#xff0c;極大提高編寫和維護 SQL 的效率。注: column 選取的字段&#xff1b;table 選取的表名語句結構錯誤SELECT column1 FROM table1 ORDER BY column1正確SELECTcolumn1FROMtable1ORDER BYcolumn1解析SQL 語句在內部執行時會…

Linux命令學習手冊-tr命令 2015-07-26 20:35 9人閱讀 評論(0) 收藏...

tr [OPTION]... SET1 [SET2] [功能] 轉換或者刪除字符。 [描述] tr指令從標準輸入設備讀取數據&#xff0c;經過字符串轉譯后&#xff0c;輸出到標準輸出設備。 通過使用 tr&#xff0c;您可以非常容易地實現 sed 的許多最基本功能。您可以將 tr 看作為 sed 的&#xff08…

css商品,商品標簽例子——CSS3 transform 屬性

積累很重要。從此開始記錄前端生涯的點滴....div{width:150px;height:30px;background-color:#f83944;/* Rotate div */transform:rotate(-40deg);-ms-transform:rotate(-40deg); /* Internet Explorer */-moz-transform:rotate(-40deg); /* Firefox */-webkit-transform:rotat…