跳到主要內容


檔案格式-圖片

檔案格式
圖片

圖片檔案類型大致分成兩種,一為點陣類型,如:jpg,二為向量類型,如:svg、png,用於儲存圖片,點陣會有壓縮失真的問題,向量型不會有。

點陣圖

點陣是以像素(Pixel)為基礎所組成的,用點的方式來紀錄圖形中所有使用到的顏色碼,一般色碼通常是使用RPG的形式,數值代表該顏色強度從0到255,每個pixel都有RPG三種顏色,RPG都有0到255的值,在看該圖片的pixel是多少,由這些pixel組成整張影像,pixel越多產生檔案越大,點陣圖能呈現影像原貌及色彩上的細微差異,具有色彩豐富、內容逼真的優點,廣泛應用在各種圖片,例如數位相機拍攝的相片;但是,將點陣圖放大後會產生鋸齒邊緣,影像會變模糊。 

向量圖

向量圖是以數學運算為基礎,每個物件都為單獨的個體,都是用數學式表達,並保有顏色、形狀、輪廓、大小和位置等屬性,放大或縮小後,點跟點的距離會以數學方式重新計算,所以清晰度不會改變,不會產生鋸齒狀,產生的圖片檔案比較小;由於它的畫面色彩比較單調,因此無法製作高品質的影像作品。
jpeg

這是jpeg的官網,上面有詳細的介紹,如果要研究jpeg的演算法可以上該網站去看看,有需多資料內容,jpeg主要是用點陣型式儲存圖片,副檔名為jpg,數位相機會用這種格式儲存

svg 


這是svg的官網,上面有詳細的介紹,如果要研究svg的細節可以上該網站去看看,有需多資料內容,svg主要是用向量型式儲存圖片,副檔名為svg,為w3c主推的圖檔格式,w3c主要訂定網頁相關的議題的組織。

png

這是png的規範RCF2038,上面有詳細的介紹,如果要研究svg的細節可以上去看看,有需多資料內容,png主要是用向量型式儲存圖片,副檔名為png,是舊時網路傳輸圖片主流之一,現在也還是有人使用。

圖檔相互轉換

在前述的向量圖點陣圖,可以知道這是儲存圖片的主流兩種形式,而點陣圖轉點陣圖跟向量圖轉向量圖,可以從概念上推知是可以相互轉換的,只是用高解析度、高色彩的儲存格式轉成低解析度、低色彩的圖片時,會有失真的問題,所以同類型的轉換時沒有問題的,再來觀察向量圖轉點陣圖,因為像樣圖是由數學式構成,構成之後轉換乘圖片,該圖片顯示在螢幕上,仍是用pixel組成,所以可以推知向量形式可以轉成點陣形式,在看點陣形式,是否能夠轉成向量形式,點陣形式是由pixel組成,要轉成向量形式必須找到其數學上的關係,所以如果要能轉換,必須要有演算法能夠根據現有的pixel推出它的形狀,並找出學式子,可想而知這是有難度的,所以比較不容易。




 投影片-slideshare:程式語言概念_變數
 影片-youtube:程式語言蓋面_變數
 程式碼-Github:程式語言概念_變數
下一單元:程式語言概念_常見的資料格式

留言

這個網誌中的熱門文章

Python-開啟檔案

Python 開啟檔案 基本概念說明 參考 程式語言概念-常見檔案型態 基本常見檔案類型 二進位檔 文字檔 CSV XML JSON html excel word 圖片 音源 影片 以下是處理該類型檔案對應函式或模組 這邊內建函數的意思是讀取之後能直接處理。 檔案類型 內建函數 標準模組 非標準模組 二進位檔 open() None - 文字檔 open() None - CSV None csv - XML None xml - JSON None json - html None html - excel None None 非 windows excel api windows excel api word None None 非 windows word api windows word api 圖片 None None pypng 音源 None wave - 影片 None None moviepy 二進位檔程式碼範例 二位元的定義在Python官網的資料型態沒有定義,但是還是可以使用的需要用函式轉換才能夠出現,分別用bytes、bytearray兩種,在使用前可以先盡到直譯器上,用help指令查訊該function的功能,以下是其內容。 在前面先講bytes跟bytearray用法,後續再講數字、字串轉成bytes的方法,最後才是進行二進位檔案讀寫。 bytes 再把資料料轉換時輸入內容可分成一下種類 整數 字串 可迭代資料:迭代內容一定要是數字 buffer:這邊不是示範,因為寫python沒用過 bytes(1) bytes(2) bytes(3) bytes(4) bytes('str'.encode('utf8')) bytes('str'.encode('ascii')) bytes([0,1,255]) bytes((2)) bytes((1,2)) bytes({1,2}) 程式碼說明 bytes()中代入數字是告知bytes數量,如:bytes(1)就是一個bytes量 bytes()中代入字串時,附加編...

Python-設計模式-共享模式

Python 設計模式 共享模式 class Font:     def __init__(self):        self.Size = 0        self.Type = ''     def printAll(self):        print(self.Size, self.Type)  class FontFacotry:     def Word(self, Size=3, Type='1'):        F = Font()        F.Size = Size        F.Type = Type        return F  FontSize = [1,2,3] FontType = ['1','2','3'] Facotry = FontFacotry()  F1 = Facotry.Word(FontSize[0],FontType[0])  F1.printAll()  F2 = Facotry.Word( FontSize[1],FontType[1] ) F2.printAll()  F3 = Facotry.Word( FontSize[2],FontType[2] ) F3.printAll() 程式碼說明 font 定義類別 fontFacotry物件生成工廠 fontsize用來儲存font大小的外部空間 fonttype用來儲存font種類的外部空間

語言學習-English-The Scientist

Song Lyric Title :  The Scientist Singer :Coldplay Album :A Rush of blood to the head Release Date :  2002 Come up to meet you Tell you I'm sorry You don't know how lovely you are I had to find you Tell you I need you Tell you I set you apart Tell me your secrets And ask me your questions Oh let's go back to the start Running in circles, coming up tails Heads on a science apart Nobody said it was easy It's such a shame for us to part Nobody said it was easy No one ever said it would be this hard Oh take me back to the start I was just guessing at numbers and figures Pulling your puzzles apart Questions of science, science and progress Do not speak as loud as my heart Tell me you love me Come back and haunt me Oh and I rush to the start Running in circles, chasing our tails Coming back as we are Nobody said it was easy Oh it's such a shame for us to part Nobody said it was easy No one...