畢業(yè)設(shè)計(jì)(論文)
題 目 電子相冊(cè)制作技術(shù)的研究
專 業(yè) 印刷工程(技術(shù))
學(xué)生姓名 賈歡
指導(dǎo)教師 趙金娟(講師 )
完成時(shí)間 2017 年6月
2017 年
摘 要
隨著電子產(chǎn)品和數(shù)碼產(chǎn)品越來(lái)越廣泛的使用,拍照已經(jīng)成為大家都喜愛(ài)的活動(dòng),
結(jié)婚、旅游、慶典、兒童寫真,很多人生的美好時(shí)刻都需要電子相冊(cè)作為回憶。由于電子相冊(cè)具有便于保存、存儲(chǔ)容量大、更具觀賞性等優(yōu)點(diǎn),受到人們的喜愛(ài)和歡迎,人們對(duì)電子相冊(cè)的需求不斷增加,電子相冊(cè)成為了新時(shí)代的一個(gè)亮點(diǎn)。
本課題是基于Python編程語(yǔ)言的電子相冊(cè)制作技術(shù)的研究,通過(guò)學(xué)習(xí)PIL庫(kù)、Pygame庫(kù)Tk接口等,建立了電子相冊(cè)交互式界面,實(shí)現(xiàn)了自動(dòng)、手動(dòng)瀏覽圖片以及滑動(dòng)、旋轉(zhuǎn)圖片等各式各樣的功能,使圖片呈現(xiàn)多樣化的瀏覽模式,并可以進(jìn)行后臺(tái)播放背景音樂(lè),使用戶體驗(yàn)不一樣的圖片瀏覽效果。
關(guān)鍵詞 :多媒體;電子相冊(cè);Python編程
Abstract
As electronic products and digital products are more and more widely used, taking photos has become a popular activity, wedding, travelling, celebration, childrens photo, a lot of wonderful moments in life requiring electronic album for memories. Because the electronic album possesses various of advantages for e*ample preserving photos, large storage capacity and great esthetics,which are appreciated and welcomed by the people.Nowadays, people`s demand for electronic album is growing, and electronic album has become a bright spot in the new era.
This topic is based on the Python programming language to research the electronic album technology, through stud
……(新文秘網(wǎng)http://jey722.cn省略1820字,正式會(huì)員可完整閱讀)……
子相冊(cè)制作軟件就在這一過(guò)程中充當(dāng)了非常重要的作用。各種圖片處理軟件、相冊(cè)制作軟件相繼而出,功能也不斷推陳出新。目前國(guó)內(nèi)外電子相冊(cè)制作軟件繁多,不同的軟件,制作出的電子相冊(cè)都會(huì)有不同。通過(guò)電子相冊(cè)制作軟件,我們的照片可以更加動(dòng)態(tài)、更加多姿多彩的展現(xiàn),可以將拍攝的照片進(jìn)行美化處理,添加動(dòng)感的背景音樂(lè)、流暢的字幕、美麗的背景底圖,使相冊(cè)集圖、文、聲、像于一體,從而更加生動(dòng)豐富,使相冊(cè)具有了親切感、藝術(shù)美、觀賞性,讓用戶感受到不一樣的視覺(jué)沖擊;通過(guò)電子相冊(cè)制作軟件的打包,相片可以更方便地分享、保存和播放。
我們綜上所述,電子相冊(cè)系統(tǒng)具有極其廣闊的的發(fā)展空間。如何優(yōu)化完善電子相冊(cè)系統(tǒng),制作更加有創(chuàng)意、個(gè)性的電子相冊(cè)成為我們需要思考和研究的問(wèn)題。在新時(shí)代的條件下,打造出追隨客戶的需求,具有用戶的使用度且個(gè)性化功能豐富的電子相冊(cè)系統(tǒng),是本課題研究?jī)?nèi)容和工作的重中之重。
1.3研究?jī)?nèi)容
本次研究的課題是基于Python的電子相冊(cè)的合理設(shè)計(jì)和開(kāi)發(fā),通過(guò)Tk界面建立電子相冊(cè)交互式界面,使用Pygame庫(kù)開(kāi)發(fā)音樂(lè)媒體播放器,向左、向上滑動(dòng)圖片瀏覽,以及趣味拼圖游戲;使用PyOpenGL庫(kù)實(shí)現(xiàn)立體魔方轉(zhuǎn)動(dòng)相冊(cè)和分別繞*軸、Y軸旋轉(zhuǎn)的相冊(cè),使用戶在視覺(jué)上感受不一樣的相冊(cè)觀看。
同時(shí)也設(shè)計(jì)了一個(gè)畢業(yè)相冊(cè)模板,通過(guò)PIL庫(kù)和Tkinter GUI 編程實(shí)現(xiàn)圖片的顯示,使用tkinter模塊編寫GUI圖形界面程序,導(dǎo)入PIL圖形處理庫(kù),調(diào)用PhotoImage()類引用圖片,在GUI程序運(yùn)行窗口輸出,實(shí)現(xiàn)自動(dòng)和手動(dòng)播放圖片,調(diào)用pygame庫(kù)播放mp3 格式的背景音樂(lè),使用python PIL函數(shù)庫(kù)對(duì)照片添加文字注釋,從而達(dá)到圖、文、聲、像并茂的表現(xiàn)效果,使相冊(cè)生動(dòng)活潑更加具有表現(xiàn)力。
通過(guò)以上模塊實(shí)現(xiàn)電子相冊(cè)的簡(jiǎn)單功能,滿足用戶個(gè)性化需求。整體流程圖如下:
圖 1-1 電子相冊(cè)系統(tǒng)流程圖
2 程序技術(shù)相關(guān)知識(shí)
2.1 電子相冊(cè)
電子相冊(cè)是指可以在電腦上觀賞的區(qū)別于CD/VCD的靜止圖片的特殊文檔,其內(nèi)容不局限于攝影照片,也可以包括各種藝術(shù)創(chuàng)作圖片。電子相冊(cè)和我們的紙質(zhì)相冊(cè)相比,從本質(zhì)上來(lái)看是它們的存儲(chǔ)介質(zhì)不同,紙質(zhì)相冊(cè)的存儲(chǔ)介質(zhì)是紙,而電子相冊(cè)的存儲(chǔ)介質(zhì)是磁盤。電子相冊(cè)的觀看方式也發(fā)生了很大的改變,我們要通過(guò)顯示屏幕來(lái)進(jìn)行觀看。電子相冊(cè)實(shí)際上就是通過(guò)軟件把多張電子照片按先后順序編輯在一起,再通過(guò)按鈕加上控制代碼,然后用鼠標(biāo)或鍵盤來(lái)控制照片的切換進(jìn)行瀏覽的文檔。
2.1.1電子相冊(cè)特點(diǎn)
電子相冊(cè)具有傳統(tǒng)相冊(cè)無(wú)法比擬的優(yōu)越性:圖、文、聲、像并茂的表現(xiàn)手法,隨意修改編輯的功能,快速的檢索方式,永不褪色的恒久保存特性,以及廉價(jià)復(fù)制分發(fā)的優(yōu)越手段。電子相冊(cè)相比傳統(tǒng)的相冊(cè)視覺(jué)更豐富,可控性更好,添加圖片,音頻,視頻和文本等元素,內(nèi)容充實(shí),生動(dòng)活潑。
電子相冊(cè)除了以視頻形式表現(xiàn),還可以是多種形式、多個(gè)格式來(lái)展現(xiàn),比如用電腦邊瀏覽邊交互、用網(wǎng)絡(luò)交互方式查看、用視頻方式觀看等等,相比于傳統(tǒng)紙質(zhì)相冊(cè),以及“硬件類型”的電子相冊(cè),電子相冊(cè)具有很多優(yōu)點(diǎn):欣賞方便,傳統(tǒng)的相冊(cè)在多人欣賞時(shí)只好輪流進(jìn)行,而電子相冊(cè)可以很多人同時(shí)欣賞;交互性強(qiáng),可以像VCD點(diǎn)歌一樣,將相冊(cè)做成不同的標(biāo)題;永久保存,CD光盤可以為存儲(chǔ)介質(zhì),壽命長(zhǎng)達(dá)上百年;欣賞性強(qiáng),以高科技專業(yè)視頻處理技術(shù)處理照片,并配上優(yōu)美的音樂(lè),可以得到雙重的享受,永久保存、輕巧方便、時(shí)尚新潮。
2.2 Python簡(jiǎn)介
Python是一種簡(jiǎn)單易學(xué)、面向?qū)ο、解釋型的?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它既具備傳統(tǒng)編譯型程序設(shè)計(jì)語(yǔ)言的強(qiáng)大功能,又在某種程度上具備比較簡(jiǎn)單的腳本和解析型程序設(shè)計(jì)語(yǔ)言的易用性。其豐富的類庫(kù)和簡(jiǎn)單易學(xué)的面向?qū)ο蟮木幊烫攸c(diǎn)深受初學(xué)者的喜愛(ài),成為高等院校開(kāi)設(shè)程序設(shè)計(jì)課程的主流編程語(yǔ)言之一,同時(shí)還因其具備可移植、可擴(kuò)展等特性成為軟件公司進(jìn)行快速應(yīng)用程序開(kāi)發(fā)以及科研單位進(jìn)行科學(xué)研究的主流編程語(yǔ)言。
Python結(jié)合了編譯性、互動(dòng)性和面向?qū)ο蟮忍攸c(diǎn),具有很強(qiáng)的可讀性。C語(yǔ)言適合開(kāi)發(fā)那些追求運(yùn)行速度、充分發(fā)揮硬件性能的程序,而Python是用來(lái)編寫應(yīng)用程序的高級(jí)編程語(yǔ)言。Python為我們提供了非常完善的基礎(chǔ)代碼庫(kù),覆蓋了網(wǎng)絡(luò)、文件、GUI、數(shù)據(jù)庫(kù)、文本等內(nèi)容。用Python開(kāi)發(fā),許多功能不必從零開(kāi)始編寫,可以直接使用現(xiàn)在的模塊,除了內(nèi)置的基礎(chǔ)庫(kù)外,Python還有大量的第三方庫(kù),也就是已經(jīng)開(kāi)發(fā)好供我們直接調(diào)用的模塊。
2.2.1 Python的特點(diǎn)
Python的主要語(yǔ)言特性包括:免費(fèi)開(kāi)源,類似于Java、PHP等的源碼開(kāi)放特性;Python語(yǔ)言關(guān)鍵字少、結(jié)構(gòu)簡(jiǎn)單、語(yǔ)法清晰,具有很強(qiáng)的偽代碼特性,方便閱讀;面向?qū)ο缶幊碳夹g(shù)的編程思想在Python中有著極大的體現(xiàn);python 是一種解釋型的語(yǔ)言,使用這種語(yǔ)言編程的程序,不需要編譯成計(jì)算機(jī)可執(zhí)行的二進(jìn)制代碼,而是直接從源代碼運(yùn)行程序;Python提倡簡(jiǎn)潔的代碼設(shè)計(jì)、高級(jí)的數(shù)據(jù)結(jié)構(gòu)和模塊化的組件,讓用戶在擴(kuò)大項(xiàng)目規(guī)模時(shí),確保靈活性和一致性;Python的可擴(kuò)展性使得程序員能夠靈活地附加程序,縮短開(kāi)發(fā)周期,因?yàn)镻ython是基于C語(yǔ)言開(kāi)發(fā)的,所以用C/C++來(lái)編寫Python的擴(kuò)展功能;Python的嵌入性是指它可以作為一種成熟的腳本語(yǔ)言,并且以一種很方便的方式嵌入到其他的程序中,比如C/C++中;Python是世界上具有標(biāo)準(zhǔn)庫(kù)最大的編程語(yǔ)言,基于龐大的標(biāo)準(zhǔn)庫(kù),我們可以編寫程序來(lái)處理各種工作,包括文檔生成、單元測(cè)試、線程等功能[12]。
2.2.2 Python的應(yīng)用
由于Python語(yǔ)言比起傳統(tǒng)編程語(yǔ)言的顯著優(yōu)點(diǎn),近年來(lái)Python已逐漸上升為繼C++和Java之后的第三大編程語(yǔ)言,在搜索引擎、軟件安全、信息加密等方面被廣泛開(kāi)發(fā)運(yùn)用[10]。由此可見(jiàn),Python的應(yīng)用范圍越來(lái)越廣。
Python應(yīng)用于系統(tǒng)編程,提供API編程接口,能夠方便地進(jìn)行系統(tǒng)維護(hù)和管理,是很多系統(tǒng)管理員理想的編程工具,是Linu*系統(tǒng)下的標(biāo)志性語(yǔ)言之一;應(yīng)用于圖像處理,含有龐大的對(duì)諸如PIL、Tkinter等圖形類庫(kù)的支持,能夠方便地進(jìn)行圖形處理;應(yīng)用于數(shù)字處理,NumPy擴(kuò)展提供了大量與許多標(biāo)準(zhǔn)數(shù)學(xué)庫(kù)對(duì)應(yīng)的接口,可以方便地處理數(shù)學(xué)問(wèn)題;應(yīng)用于文本處理,Python提供了很多模塊,如re模塊能夠處理正則表達(dá)式,又如SGML、*ML分析模塊可進(jìn)行文本的編輯開(kāi)發(fā);應(yīng)用于數(shù)據(jù)庫(kù)編程,通過(guò)Python DB-API(數(shù)據(jù)庫(kù)應(yīng)用程序編程接口)規(guī)范模塊,可以與Microsoft SQL Sever、Orale、Sybase、DB2、MySQL、SQLite等數(shù)據(jù)庫(kù)通信,Python自帶的Gadfly模塊可提供完整的SQL環(huán)境[10];應(yīng)用于網(wǎng)絡(luò)編程,提供豐富的模塊支持Socket編程,能夠方便、快速地開(kāi)發(fā)分布式應(yīng)用程序;應(yīng)用于Web編程,支持HTML、*ML等標(biāo)記語(yǔ)言;應(yīng)用于多媒體應(yīng)用,Python的PyGame模塊可由于編寫游戲軟件,PyOpenGL模塊則封裝了OpenGL應(yīng)用程序編程接口,能進(jìn)行二維和三維圖像處理。
2.3 PIL庫(kù)
Python Imaging Library(PIL)是 Python圖像處理擴(kuò)展庫(kù),提供了非常強(qiáng)大的圖像處理功能,并提供廣泛的圖形文件格式支持,可以對(duì)數(shù)字圖像進(jìn)行一系列功能性處理,如圖形的放大、縮小和旋轉(zhuǎn)等。PIL模塊需要獨(dú)立安裝后才能使用,Image是pillow庫(kù)中一個(gè)非常重要的模塊,在PIL中主要提供了Image、ImadeChops、ImageColor、ImageDraw、ImageDraw、ImagePath、ImageFile以及一些其他的模塊來(lái)支持圖像的處理,而ImageGrab模塊還支持對(duì)指定區(qū)域進(jìn)行截圖[1]。
2.4 Pygame庫(kù)
Pygame是Python用于創(chuàng)建游戲和進(jìn)行多媒體開(kāi)發(fā)的模塊,適合于創(chuàng)建圖像、動(dòng)畫、_、交互藝術(shù)和其他很多功能,Pygame框架中包含繪制圖形、播放_(tái)、處理鼠標(biāo)輸入等功能的模塊。Pygame是一個(gè)利用SDL庫(kù)實(shí)現(xiàn)的模塊,提供了數(shù)種控制圖像、_的函數(shù),多用于開(kāi)發(fā)游戲、模擬器、媒體播放器等多媒體應(yīng)用領(lǐng)域[2]。
2.5 Tkinter 編程
Tkinter模塊是Tk GUI庫(kù)的接口,采用Tkinter模塊編寫的Python GUI程序是跨平臺(tái)的,可運(yùn)行在Windows、UNI*、Linu*以及Macintosh OS * 等多種操作系統(tǒng)中,并且與系統(tǒng)的布局和外觀風(fēng)格保持一致,可使用Python對(duì)Tkinter進(jìn)行擴(kuò)展,或直接使用現(xiàn)有的擴(kuò)展包,如Pmw(界面組件庫(kù))、PIL(圖形處理庫(kù))等[1]。
使用Tkinter可以創(chuàng)建完整的GUI程序。在Tkinter模塊中,可以直接使用文本框、按鈕、標(biāo)簽等組件(widget)進(jìn)行GUI編程。換句話說(shuō),要實(shí)現(xiàn)某個(gè)界面元素,只要調(diào)用對(duì)應(yīng)的組件即可。Tkinter是Python的一個(gè)模塊,可以向其他模塊一樣在Python的交互式shell中(或者“.py”程序中),Tkinter模塊被導(dǎo)入后即可使模塊中的函數(shù)、方法等。
2.6 OS模塊
Python中的文件系統(tǒng)訪問(wèn)功能一般可以通過(guò)類模塊中的OS模塊來(lái)實(shí)現(xiàn)。在計(jì)算機(jī)系統(tǒng)進(jìn)行操作時(shí),就免不了要與文件目錄打交道,Python的OS模塊提供的各類文件操作和目錄處理的函數(shù),能夠方便有效地完成文件夾遍歷、文件內(nèi)容 ……(未完,全文共28412字,當(dāng)前僅顯示5110字,請(qǐng)閱讀下面提示信息。
收藏《畢業(yè)設(shè)計(jì)論文:電子相冊(cè)制作技術(shù)的研究》)