-
1 # BUG工程師
-
2 # 星空e劇
圖片是一個一個的畫素點堆積起來的,畫素點的本質也就是二進位制的數字,也就是0/1,編寫的程式碼最後生成的可執行檔案也是01,所以編寫程式碼可以生成圖片是很平常的事,它們的本質是一樣的,都是二進位制數字。
-
3 # 精簡科技
因為編寫的程式碼中的特殊語句,對應於電腦程式中相應的基礎圖形,例如 <hr>在HTML中表示一條水平級,<br>換小行,<p>換大行...等
-
4 # golang深耕者
這個問題其實涉及到計算機實現原理,計算機分軟體和硬體,軟體執行的時候會編譯成計算機硬體能能夠識別的0和1的機器語言,再透過複雜的過程轉換成顯示器上畫素點匯成圖形。
-
5 # 碼中尋樂
為什麼前臺程式能看到圖形呢? 因為作業系統提供了一整臺完整的圖形化介面介面,當程式程式碼呼叫了這些圖形化介面後,在程式執行時在作業系統的支援幫助下,就可以將我們的圖形介面呈現到螢幕上了。
比如目前視覺處理最流行的OpenCV庫,用它展示一張圖片直接就可以使用cv::imshow(m)語句就可以了。
還有各種形形色色的影象介面函式就不一一列舉了,如果對程式設計感興趣,可以先找些基礎性的書籍先學習學習。
這裡有一個啟蒙的圖形化程式語言:Scratch 程式語言是由麻省理工大學 MIT 和 Google 主導開發的針對6-16 歲兒童的圖形化程式語言。
-
6 # jedi_knight3
顯示卡把需要顯示的影象儲存在視訊記憶體中,由程式計數器逐個位元讀出數值,由D/A轉換器(數字訊號和模擬訊號轉換器)轉換為電壓變化的輸出。
讀出的順序對應於影象為從左到右一整行後,再到下一行,直至右下角最後一個象點。再回到左上角象點讀出,電壓的輸出分紅、綠、藍三個通道,對應每一色,光亮度越高,輸出的電壓越高,通常輸出電壓範圍(國際標準為0-0.7V或0-0.1V)此三通道電壓由訊號線的1、2、3號腳輸入到顯示器。
-
7 # 飛翼點通
電腦螢幕是畫素構成。最簡單的圖形表達是單色表達,舉個例子,假如顯示一根紅色線條只需要點亮一排畫素即可,設定二進位制數1為點亮,0則不點亮,顯示黑色,那麼11111111可以點亮一行八個畫素的線條,一個位元組就可以搞定了。
假設顯示模式是1024*768,那麼傳送1024*768/8個全部為1的位元組就可以讓全屏為紅色。
以此類推,如果增加顏色就要相應增加位元組數。這樣圖形就能顯示出來。當然顯示真實影象還遠遠不夠,因為影象有灰度,如果加上灰度值所需要的位元組數將大幅提高,因此就有了壓縮演算法,比如我們常見的jpg檔案就是一種影象壓縮檔案。
-
8 # huzibbs
這麼跟你說吧!電腦顯示屏就像一堆火柴,擺成什麼樣子,完全看個人(這就是所謂的程式設計了),其實寫程式碼就是把0和1組成不同的組合,因為電腦只能識別0和1,電腦本質上其實就是一堆的開關組合起來的。
-
9 # 靠良心掙錢
在現在人們主要的軟體開發工作是針對作業系統的,所以這個問題的理解對大多數人來說不難但不直觀,其實只要瞭解一下點陣圖就可以了,就是螢幕上的畫素點陣在視訊記憶體緩衝區的對映,在早期以及現在和硬體打交道的工程師,對這個印象會很深刻,但作為絕大多數系統應用工程師更多的是直接用系統API,內部的細節就被隱藏了
-
10 # 叫啥好呢是吧
因為所有的影象圖形以及應用程式底端都是又二進位制組成的。使用低階語言是可以直接編寫出想要的任何東西,只是比較繁瑣而已。
-
11 # AGamer
這個問題我用比較簡單的方式來解釋下
首先我們看到圖形是透過顯示裝置(顯示器、電視、手機),這些本質都可以看作是一個個畫素點組成的區域。透過某種方式讓畫素點在特定位置現實特定的顏色就可以組成特定的圖形,也就是單張畫面。
編寫程式碼只是一種告訴計算機在什麼地方顯示什麼顏色的方式,只不過中間省略(封裝)了大量環節,這些省略方式都是提前制定好了的,比如#000000的就是黑色,#FFFFFF就是白色一樣。編寫程式碼就是使用這種約定好的規則進行設計想要顯示的畫面。
總結一下,程式碼就是命令,讓某個畫素點現實某個顏色,多個畫素點組成圖形。
-
12 # 網趣科技
螢幕影象顯示原理
介紹螢幕影象顯示的原理,需要先從 CRT 顯示器原理說起,如下圖所示。CRT 的電子槍從上到下逐行掃描,掃描完成後顯示器就呈現一幀畫面。然後電子槍回到初始位置進行下一次掃描。為了同步顯示器的顯示過程和系統的影片控制器,顯示器會用硬體時鐘產生一系列的定時訊號。
當電子槍換行進行掃描時,顯示器會發出一個水平同步訊號(horizonal synchronization),簡稱 HSync;而當一幀畫面繪製完成後,電子槍回覆到原位,準備畫下一幀前,顯示器會發出一個垂直同步訊號(vertical synchronization),簡稱 VSync。
顯示器通常以固定頻率進行重新整理,這個重新整理率就是 VSync 訊號產生的頻率。雖然現在的顯示器基本都是液晶顯示屏了,但其原理基本一致。
下圖所示為常見的 CPU、GPU、顯示器工作方式。CPU 計算好顯示內容提交至 GPU,GPU 渲染完成後將渲染結果存入幀緩衝區,影片控制器會按照 訊號逐幀讀取幀緩衝區的資料,經過資料轉換後最終由顯示器進行顯示。最簡單的情況下,幀緩衝區只有一個。此時,幀緩衝區的讀取和重新整理都都會有比較大的效率問題。為了解決效率問題,GPU 通常會引入兩個緩衝區,即 雙緩衝機制。在這種情況下,GPU 會預先渲染一幀放入一個緩衝區中,用於影片控制器的讀取。當下一幀渲染完畢後,GPU 會直接把影片控制器的指標指向第二個緩衝器。雙緩衝雖然能解決效率問題,但會引入一個新的問題。當影片控制器還未讀取完成時,即螢幕內容剛顯示一半時,GPU 將新的一幀內容提交到幀緩衝區並把兩個緩衝區進行交換後,影片控制器就會把新的一幀資料的下半段顯示到螢幕上,造成畫面撕裂現象,如下圖:
為了解決這個問題,GPU 通常有一個機制叫做垂直同步(簡寫也是 V-Sync),當開啟垂直同步後,GPU 會等待顯示器的 VSync 訊號發出後,才進行新的一幀渲染和緩衝區更新。這樣能解決畫面撕裂現象,也增加了畫面流暢度,但需要消費更多的計算資源,也會帶來部分延遲。實際的光柵掃描顯示器大多采用蔭罩式的crt,由紅、綠、藍三槍發射的電子束透過蔭罩板射到熒光屏上對應顏色的熒光粉上。因此,前述的每一個畫素值將 透過一個“彩色表”將畫素值轉換為三種基色的分量訊號,經相應的d/a轉換後去分別控制三基色電子槍
圖形顯示過程圖形的顯示過程應該從硬體和軟體兩個方面來說。就硬體方面來說,當電子束掃描到螢幕上某一畫素的位置(座標)時,顯示器中的顯示處理器 dpu(display processing unit)會同時從對應的顯示緩衝單元中取出畫素值,並以此查詢彩色表的地址,從該地址處得到該畫素的紅、綠、藍三基色分量,經d/a轉換後分別控制三基 色電子槍,使螢幕上該畫素顯示出三基色的混合色。在圖2示例中,彩色表的紅、綠分量分別為15,而藍分量為0,因此,螢幕上該畫素的顏色會是黃色。
就軟體方面來說,要完成圖形顯示的初始化及圖形的加工。這裡,初始化的意思是要將計算機的顯示方式設定為顯示器所能夠顯示的某一種模式,並將所有的顯示緩衝單元清零,另外,對彩色表的每一個單元要分別填上預定的顏色值,使彩色索引與具體的顏色聯絡起來。 圖形加工則是圖形軟體的主要任務,其主要內容是:根據需要顯示的圖形內容,隨時改寫顯示緩衝單元的內容。這是因為螢幕上顯示的圖形是由顯示卡上顯示緩衝區中的內容唯一決定的。一旦在顯示緩衝單元中寫入要求的彩色索引值,圖形就自然在螢幕上顯示出來了。
圖形的生成1.初始化
各種圖形顯示模式已經寫入到機器主機板上的rombios中。透過對rombios的合理呼叫,就可以獲得所需的顯示模式。由於各種顯示卡可以有許多種 顯示模式,因此,在計算機生成任何圖形之前,必須進行圖形的初始化工作,也就是說必須要裝入圖形驅動程式,以確定計算機是工作在哪一種圖形顯示模式。
2.點的顯示
由於圖形顯示器件的顯示方式具有離散性質,使得任何圖形的顯示都是由點的集合形式呈現的,也就是說,點是構成直線、圓弧、拋物線及其它任意曲線的最基本元素,也是構成面、體等圖形的最基本元素,因此在討論計算機生成任何圖形之前,首先應瞭解點的顯示原理。
根據前面的介紹,圖形初始化後即可進入相應的圖形顯示模式。在不同的顯示模式下,點的大小是不一樣的,例如在320×200的顯示模式下,滿屏顯示的 最多點數為320×200Κ64000點,因此,一個點的面積約佔整個螢幕面積的1/64000。在1024×768的顯示模式下,滿屏顯示的最多點數為 1024×768Κ786432點,因此,一個點的面積約佔整個螢幕面積的1/786432,僅為前者的8%。圖形解析度越高,點就越小。
點的顯示一般有兩種方式:
其一,是採用dos作業系統的rombios的系統中斷呼叫,其int10中斷處理子程式就是對顯示螢幕進行處理的;
其二,是直接儲存器存取(dma)的快速寫點方式,即直接對顯示卡上的影片vram進行存取。 dosbios的呼叫方法一般比較簡單,但由於需要經過ah、al、cx、dx等幾個暫存器的存取動作,寫點的速度要慢些。
dma方式的寫點速度要比dosbios呼叫方式的寫點速度快得多,但演算法稍複雜一些。
近些年來,對於圖形影象顯示技術的研究一直是計算機領域的一個熱門話題,不少公司也相繼推出了各式各樣的圖形影象加速技術。如最近新推出的 directdraw直接寫屏技術,可以使圖形影象的顯示速度進一步加快,這對於大量3d圖形的顯示尤為顯得重要。而基於directdraw技術的應用 程式一般可以透過visual basic、visual c++、borland c++或delphi等程式語言來編制。
3.基本圖形的生成
基本圖形一般指直線段、圓弧以及由它們構成的簡單幾何圖形。根據前面關於在螢幕上寫點的說明可知,要生成基本圖形,只需根據構成基本圖形的各曲線段的 方程找出所有符合曲線方程的點(即x、y座標值),並在螢幕座標的相應位置上以給定的顏色正確顯示這些點,即可在螢幕上完整顯示出由計算機所畫出的圖形。
值得說明的是,計算機顯示器螢幕上所能顯示的最大點數由顯示卡的不同顯示模式所決定。因此,在進入圖形顯示方式時,首先要在顯示器的螢幕上建立一個座標 系,且水平和垂直座標均取為整數。當透過方程計算出來的x、y座標值不為整數時,還應對該座標值以四捨五入方式取整。
在實際應用中,直接根據曲線方程進行程式設計常常會使得程式中出現大量的實數乘除法及多層迴圈運算,造成程式的執行效率極低,因此實用程式中大多采用了巧 妙的演算法以儘量迴避影響程式執行速度的因素。此部分內容屬於計算機圖形學的基本內容,有興趣的讀者可參閱有關的書籍,這裡不贅述。
回覆列表
這個和奧運會或者軍訓時候用人員來顯示圖案是一樣的,每一個畫素點可以發出三原色的光,程式控制每個畫素點三原色的亮度組成不同的圖案就可以了。