電子相冊系統(tǒng)需求分析.doc
《電子相冊系統(tǒng)需求分析.doc》由會員分享,可在線閱讀,更多相關(guān)《電子相冊系統(tǒng)需求分析.doc(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。
中原工學院軟件學院 二級實踐課題設(shè)計任務(wù)書 姓 名 劉亞敏 計算機信息管理 專業(yè) 112 班 題 目 相冊管理系統(tǒng)的設(shè)計和實現(xiàn) 設(shè) 計 任 務(wù) 要求設(shè)計一個簡單的相冊管理程序,能實現(xiàn)新建、打開相冊,導入照片、幻燈片放映、旋轉(zhuǎn)圖片等功能??蓪崿F(xiàn)按相冊創(chuàng)建時間、照片上傳時間、照片描述等查看相冊。要求使用數(shù)據(jù)庫記錄照片信息,并用文件夾及文件操作管理相冊及照片。 時 間 進 度 第1周:( 2012.06.11~2012.06.17 ):系統(tǒng)需求分析,進行界面設(shè)計;設(shè)計系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)進行分析、設(shè)計,并通過畫E-R圖的方式來幫助實現(xiàn)數(shù)據(jù)庫結(jié)構(gòu)的完整設(shè)計,列出數(shù)據(jù)庫數(shù)據(jù)表,之后以列出的關(guān)系模型為依據(jù)進行 第2周:( 2012.06.18 ~2012.06.24 ):對系統(tǒng)進行詳細的分析設(shè)計,根據(jù)不同的功能模塊,對其進行相應(yīng)的編碼及測試; 第3周:( 2012.06.25 ~ 2012.07.01 ):對系統(tǒng)進行測試和糾錯,進一步完善其功能,之后進行報告總結(jié),交與老師驗收。 原 主 始 要 資 參 料 考 與 文 獻 [01] 李紅.數(shù)據(jù)庫原理與應(yīng)用,高等教育出版,2003年3月。 [02] 謝希仁.計算機網(wǎng)絡(luò).電子工業(yè)出版社,2008年1月。 [03]白以恩.計算機網(wǎng)絡(luò)基礎(chǔ)及應(yīng)用[M]. 哈爾濱:哈爾濱工業(yè)大學出版社,2000.189~258 指導教師簽字: 年 月 日 摘 要 由于市場競爭的需要,交流方式的多樣化,用戶的可選擇的方式也就不斷增加,對于軟件研發(fā)者,軟件功能的多樣化和完善才是競爭的資本。由于信息交流的多樣化,特別是電子信息技術(shù)的發(fā)展,同時,隨著數(shù)據(jù)庫技術(shù),客戶/服務(wù)器技術(shù)等的發(fā)展,使得電子相冊系統(tǒng)的功能更加完善。電子相冊管理系統(tǒng)的特點是從相冊管理的角度出發(fā),通過數(shù)據(jù)庫將幾乎所有與之相關(guān)的數(shù)據(jù)統(tǒng)一管理起來,從而形成了集成的信息集。電子相冊管理系統(tǒng)較好的用戶界面,信息共享,信息管理使得管理人員和用戶使用更加的便捷,而且電子相冊系統(tǒng)的可操作性非常強,針對不同教育程度的人群。 電子相冊系統(tǒng)容納的信息量非常大,主要通過文字和圖片等方式展示出來,針對當前信息交流和管理類型的軟件較多的原因,電子相冊系統(tǒng)通過簡單的幾個功能模塊就實現(xiàn)了用戶的登錄、注冊、信息更新、信息共享、信息管理等功能。且在不同的功能模塊中,分工明確,不同的功能模塊通過控件聯(lián)系起來。從而使得用戶之間的交流更加的多樣化。 關(guān)鍵詞:相冊管理;數(shù)據(jù)庫設(shè)計;界面設(shè)計。 目 錄 摘 要 3 第1章 緒 論 5 1.1課題背景 5 1.2相冊管理系統(tǒng)的現(xiàn)狀 5 1.3 課題研究內(nèi)容 5 第2章 需求分析 6 2.1 相冊需求分析 6 2.2 需求分析的任務(wù)概述 6 2.2.1 目錄 6 2.2.2用戶的特點 6 2.2.3假定和約束 6 2.2.4需求約定 7 2.2.5功能詳細描述 7 2.3 系統(tǒng)環(huán)境需求 7 2.3.1 開發(fā)環(huán)境需求 7 2.3.2 運行環(huán)境需求 7 第3章 概要設(shè)計 8 3.1 數(shù)據(jù)庫概要設(shè)計 8 3.1.1 實體及其屬性 8 3.1.2 E-R模型 8 第4章 詳細設(shè)計 9 4.1 數(shù)據(jù)庫的詳細設(shè)計 9 4.2結(jié)構(gòu)化分析與設(shè)計 10 4.2.1數(shù)據(jù)主要功能的數(shù)據(jù)流程圖 10 4.2.2系統(tǒng)總體結(jié)構(gòu)設(shè)計 12 4.3系統(tǒng)詳細設(shè)計 12 4.3.1相冊登錄管理 12 4.3.2相冊信息管理 13 第5章 運行及測試 17 5.1 系統(tǒng)測試概要 17 5.2 系統(tǒng)維護 19 第6章 結(jié)束語 20 附錄 系統(tǒng)相關(guān)代碼 22 第1章 緒 論 1.1課題背景 由于市場競爭的需要,交流方式的多樣化,用戶的可選擇的方式也就不斷增加,對于軟件研發(fā)者,軟件功能的多樣化和完善才是競爭的資本。由于信息交流的多樣化,特別是電子信息技術(shù)的發(fā)展,同時,隨著數(shù)據(jù)庫技術(shù),客戶/服務(wù)器技術(shù)等的發(fā)展,使得相冊系統(tǒng)的功能更加完善。相冊管理系統(tǒng)的特點是從相冊管理的角度出發(fā),通過數(shù)據(jù)庫將幾乎所有與之相關(guān)的數(shù)據(jù)統(tǒng)一管理起來,從而形成了集成的信息集。相冊管理系統(tǒng)較好的用戶界面,信息共享,信息管理使得管理人員和用戶使用更加的便捷,而且相冊系統(tǒng)的可操作性非常強,針對不同教育程度的人群。 相冊系統(tǒng)容納的信息量非常大,主要通過文字和圖片等方式展示出來,針對當前信息交流和管理類型的軟件較多的原因,相冊系統(tǒng)通過簡單的幾個功能模塊就實現(xiàn)了用戶的登錄、注冊、信息更新、信息共享、信息管理等功能。且在不同的功能模塊中,分工明確,不同的功能模塊通過控件聯(lián)系起來。從而使得用戶之間的交流更加的多樣化。 1.2相冊管理系統(tǒng)的現(xiàn)狀 現(xiàn)有系統(tǒng)主要是由人工進行管理和維護,工作量較大,不能滿足人們對時間和效率的要求,導致這種相冊模式已不再適應(yīng)日益增長的相冊工作管理量。迫切需要找到一種更加智能的相冊管理以及注冊系統(tǒng)。 1.3 課題研究內(nèi)容 希望能夠以最低的成本,并且能夠在最短的時間期限內(nèi)研發(fā)出具有登錄、注冊、信息共享、信息管理等功能的相冊管理系統(tǒng)。 該課題以某商標注冊所的客戶管理需求為出發(fā)點,實現(xiàn)了以下功能: 1) 登錄模塊 2) 相冊管理模塊 3) 相片管理模塊 第2章 需求分析 2.1 相冊需求分析 在完成了針對《相冊管理》軟件市場的前期調(diào)查,同時與多位軟件使用者進行了全面深入地探討和分析的基礎(chǔ)上,提出了這份軟件需求規(guī)格說明書。 此需求規(guī)格說明書對《相冊管理系統(tǒng)》軟件做了全面細致的用戶需求分析,明確所要開發(fā)的軟件應(yīng)具有的功能、性能與界面,使系統(tǒng)分析人員及軟件開發(fā)人員能清楚地了解用戶的需求,并在此基礎(chǔ)上進一步提出概要設(shè)計說明書和完成后續(xù)設(shè)計與開發(fā)工作。本說明書的預期讀者為用戶、業(yè)務(wù)或需求分析人員、測試人員、項目管理人員。 2.2 需求分析的任務(wù)概述 2.2.1 目錄 1、開發(fā)目標 人們交流的方式多種多樣,但是,我們在交流的同時希望更多的了解對方的信息,本軟件即是根據(jù)此需求進行開發(fā)的。 2、應(yīng)用目標 讓用戶能夠通過注冊信息,登錄并更新及查詢自己的信息,在此基礎(chǔ)上,用戶還能夠有效的掌握和共享其它資源,但是不能更新。從而促進了信息管理的規(guī)范化和集成化,使得用戶之間的交流更加的便捷。 2.2.2用戶的特點 本軟件產(chǎn)品的最終用戶來源廣泛,相同之處則是為了增進與他人之間的交流,管理人員則可以隨時更新軟件的項目,以及查詢和維護信息。本軟件面向大眾,用戶使用過程中的操作也不復雜。 2.2.3假定和約束 本軟件產(chǎn)品為大眾用戶使用,然而,本軟件在功能上還不夠完善,因此對于用戶的需求還無法完全實現(xiàn)。 2.2.4需求約定 本相冊管理系統(tǒng)主要能實現(xiàn)新建、打開相冊,導入照片、幻燈片放映、旋轉(zhuǎn)圖片等功能。可實現(xiàn)按相冊創(chuàng)建時間、照片上傳時間、照片描述等查看相冊,并用文件夾及文件操作管理相冊及照片。方便性和上傳照片快速性創(chuàng)造條件,對用戶的登陸注冊以及管理實現(xiàn)計算機管理,實現(xiàn)數(shù)據(jù)的及時保存預處理。 2.2.5功能詳細描述 相冊管理系統(tǒng)主體分為三大部分:用戶登陸和使用相冊和退出本系統(tǒng)。 <1> 用戶通過對用戶名和密碼的校驗才可以登錄,會出現(xiàn)一個相冊管理系統(tǒng)主界面,里面包含了用戶可以做的所有操作。 <2>在相冊主界面部分可以上傳相片,瀏覽相片,新建相冊,刪除相冊等。 <3>退出本系統(tǒng)就徹底的退出了相冊管理系統(tǒng)。 2.3 系統(tǒng)環(huán)境需求 2.3.1 開發(fā)環(huán)境需求 硬件需求:CPU PIII 500以上的PC服務(wù)器,內(nèi)存1GB以上,硬盤8GB以上。操作系統(tǒng):Windows XP 軟件需求:Microsoft Visual Studio 2005 開發(fā)環(huán)境,SQL Server 2005數(shù)據(jù)庫 2.3.2 運行環(huán)境需求 硬件需求:CPU PIII 500 以上的PC服務(wù)器,內(nèi)存1CB以上,硬盤8GB以上。操作系統(tǒng):Windows XP; 軟件需求:.NET Framework v2.0。 第3章 概要設(shè)計 3.1 數(shù)據(jù)庫概要設(shè)計 對于企業(yè)客戶關(guān)系管理系統(tǒng)的數(shù)據(jù)庫設(shè)計,本文將從以下幾個方面進行描述:首先是概念模型描述,包括對系統(tǒng)的實體屬性分析及系統(tǒng)的E-R圖,然后是系統(tǒng)的邏輯結(jié)構(gòu)設(shè)計,即給出系統(tǒng)的數(shù)據(jù)庫設(shè)計表結(jié)構(gòu)及描述。 3.1.1 實體及其屬性 整個系統(tǒng)各實體可用以下關(guān)系來表示(其中主鍵已用下劃線標識): l 用戶(用戶賬號,用戶名,用戶密碼) l 相冊(用戶名,相冊編號,相冊名,創(chuàng)建時間,相冊簡述) l 相片(相冊編號,相片編號,相片名,創(chuàng)建時間,相片簡述) 3.1.2 E-R模型 用戶名 在分析過系統(tǒng)各實體之間的聯(lián)系后可得出系統(tǒng)的整體概念模型,用E-R圖表示出來,如圖3.1所示的。 用戶編號 用戶密碼 用戶 查看 相冊 屬性 相片 相片編號 相片名字 相冊簡介 創(chuàng)建時間 相冊名字 相冊編號 相片簡介 創(chuàng)建時間 圖3.1 E-R圖 第4章 詳細設(shè)計 為了方便用戶的操作,系統(tǒng)采用了模塊化設(shè)計的思想,通過各模塊的不同組合以實現(xiàn)不同的增、刪、改、查功能。最終,使該系統(tǒng)能夠具有規(guī)范化的格式、完整的信息量和易于查詢等的特點。 4.1 數(shù)據(jù)庫的詳細設(shè)計 依據(jù)數(shù)據(jù)庫的概要設(shè)計,最后總結(jié)出數(shù)據(jù)庫結(jié)構(gòu)的主要數(shù)據(jù)表包括:用戶信息表,相冊信息表,相片信息表。以下將給出系統(tǒng)數(shù)據(jù)庫設(shè)計的邏輯模型,即各數(shù)據(jù)表的結(jié)構(gòu)。 1、用戶信息表 用戶信息表存儲用戶的相關(guān)信息,表結(jié)構(gòu)如表4.2所示 表4.1 用戶信息表結(jié)構(gòu) 列名 數(shù)據(jù)類型 長度 允許空 是否為主鍵 用戶名 char 7 否 是 用戶密碼 char 7 否 否 用戶編號 int 否 否 2、相冊信息表 相冊信息表存儲相冊的相關(guān)信息,表結(jié)構(gòu)如表4.3所示 表4.2 相冊信息表結(jié)構(gòu) 列名 數(shù)據(jù)類型 長度 允許空 是否為主鍵 用戶賬號 char 7 否 否 相冊號 char 6 否 是 相冊名 char 20 否 否 創(chuàng)建日期 smalldatetime 否 否 3、相片信息表 相片信息表存儲相片的相關(guān)信息,表結(jié)構(gòu)如表4.4所示 表4.3相片信息表結(jié)構(gòu) 列名 數(shù)據(jù)類型 長度 允許空 是否為主鍵 相冊號 Char 6 否 否 相片號 char 7 否 否 相片名 char 10 否 是 相片簡介 Int 6 否 否 4.2結(jié)構(gòu)化分析與設(shè)計 4.2.1數(shù)據(jù)主要功能的數(shù)據(jù)流程圖 1.登錄功能 是否登錄 取消服務(wù),退出界面 Yes No 用戶進入登錄首界面 輸入用戶編號及密碼 進入用戶個人界面 系統(tǒng)查詢匹配 Yes No 2.用戶功能 進入個人檔案 用戶界面 選擇相應(yīng)操作 進入個人相冊 查看、修改相應(yīng)數(shù)據(jù) 選擇相應(yīng)操作 打開相冊 上傳相片 刪除相冊 …… 瀏覽相片 4.2.2系統(tǒng)總體結(jié)構(gòu)設(shè)計 系統(tǒng)功能總結(jié)構(gòu)圖 … 相冊管理系統(tǒng) 用戶登錄系統(tǒng) 用戶信息管理系統(tǒng) 相冊管理系統(tǒng) 注 冊 信息完善 相片編輯及其他功能 4.3系統(tǒng)詳細設(shè)計 以下是系統(tǒng)各主要功能模塊的界面設(shè)計及實現(xiàn)。 4.3.1相冊登錄管理 進入相冊的用戶必須先登錄,輸入正確的用戶名和登錄密碼,點擊“登錄”。 用戶在登錄界面填寫完用戶名及密碼后,單擊登錄按鈕,不是所有的用戶名和密碼都能進入,輸入的用戶名和密碼需與數(shù)據(jù)庫中的用戶表內(nèi)的記錄一致,需進行判斷。 登錄頁面如圖4.1所示 圖4.1 登錄頁面 4.3.2相冊信息管理 用戶通過身份驗證后進入相應(yīng)功能頁面。點擊界面“登錄”按鈕,用戶在進入系統(tǒng)后可以進行相應(yīng)操作,其中包括新建相冊等,新建相冊需要把輸入的信息添加到數(shù)據(jù)庫中,相冊才可以建立成功。 進入“相冊管理界面”,可查看“相冊信息”。如圖4.2所示。 圖4.2相冊管理頁面 在該頁面通過選擇相冊查詢?nèi)?“美麗風景”、“絢麗夜空”、“傷感人物”、“可愛動物”、“魅力星座”等相冊信息,選擇其中的一個相冊,點擊打開對于相冊進行查詢、編輯,系統(tǒng)都提供了查詢功能,點擊某一條相冊,點擊 “打開相冊”按鈕,將進入該相冊中,可對相片進行編輯,旋轉(zhuǎn),黑白化…… 在該界面中單擊新建相冊集彈出相冊新建界面,其中包括相冊編號、相冊名、相冊描述,在這其中填入相應(yīng)數(shù)據(jù)后單擊新建相冊即可創(chuàng)建該相冊,同時在數(shù)據(jù)庫和前臺都有相應(yīng)更新; 在列表式下拉框中選中某個相冊名后單擊“打開相冊”即可打開該相片管理界面,如圖4.3所示: 4.3 相冊信息管理頁面 在“相冊管理”頁面中,單擊“進入相冊查詢”按鈕,彈出“相冊查詢”頁面,輸入相冊名,單擊“顯示結(jié)果”,在 ListBox控件中,顯示相冊的相關(guān)信息,如圖4.4所示: 圖4.4相冊查詢頁面 第5章 運行及測試 5.1 系統(tǒng)測試概要 在編碼的過程中,需要通過不斷的對系統(tǒng)進行調(diào)試,才能對其功能做出完善性的補充。所以測試在此期間起了相當大的作用。 以下給出用戶登錄及客戶信息管理模塊的若干主要測試用例。如表5.1所示。 l 登錄功能; 實現(xiàn)用戶登錄,根據(jù)登錄者的不同,進入不同界面。 l 用戶注冊功能; 實現(xiàn)用戶注冊功能,在注冊時填寫相應(yīng)的用戶個人信息(用戶名、密碼、等) l 用戶信息管理功能; 實現(xiàn)用戶個人信息的管理,用戶對于個人信息可以隨時的修改。 l 系統(tǒng)設(shè)置管理; 用戶根據(jù)需要修改系統(tǒng)相關(guān)設(shè)置 表5.1 測試用例 序號 功能模塊 測試功能點 操作步驟及數(shù)據(jù) 期望結(jié)果 實際結(jié)果 1. 登錄 輸入正確用戶名密碼 在登錄頁面輸入用戶名及密碼,點擊“登錄”按鈕 正常登錄,顯示相應(yīng)功能頁面 正確 2. 輸入正確的用戶名和錯誤的密碼 在登錄頁面輸入用戶名及密碼,點擊“登錄”按鈕 不能正常登錄,系統(tǒng)給出提示 系統(tǒng)給出提示:“密碼錯誤,請重新輸入” 3. 用戶名或密碼空白 在登錄頁面不輸入用戶名及密碼,直接點擊“登錄”按鈕 系統(tǒng)給出提示 系統(tǒng)給出提示“請輸入用戶名及密碼” 4. 相冊信息管理 相冊信息的查詢 根據(jù)相冊的名稱、創(chuàng)建時間等信息進行對相冊進行分類查詢 按用戶要求顯示相冊列表 按創(chuàng)建時間或相冊名字顯示相冊列表 5. 相冊信息的新建 單擊相冊管理器中的新建相冊,彈出新建相冊界面,輸入相冊詳細信息,單擊“新建相冊” 即創(chuàng)建相冊成功 按用戶要求創(chuàng)建出相應(yīng)的相冊 創(chuàng)建的相冊信息和用戶所填數(shù)據(jù) 6. 相片信息管理 相片信息的新建 點擊添加相片,在文件夾中選中要上傳的相片,填寫相片相應(yīng)信息,然后上傳 上傳用戶希望看到的相片 相冊列表和數(shù)據(jù)庫中出現(xiàn)相應(yīng)上傳的照片 相片信息的修改 點擊打開相片,在相片管理器重進行對相片的,浮雕化、向左向右旋轉(zhuǎn)等功能 單擊相應(yīng)的按鈕出現(xiàn)相應(yīng)想過 單擊放大或縮小等按鍵會出現(xiàn)相應(yīng)的結(jié)果 5.2 系統(tǒng)維護 本系統(tǒng)主要采取三種方式維護: 1 改正性維護 在軟件初期使用,由于某種原因,軟件存在一些錯誤或缺陷。需要由軟件開發(fā)小組按用戶要求對系統(tǒng)進行改正性維護。 2 適應(yīng)性維護 當系統(tǒng)長時間使用后,隨著用戶的增加,系統(tǒng)在某些方面的速度可能不如剛開始的時候,所以對這個問題我們要做出適當維護。 3 完善性維護 在系統(tǒng)使用后,該應(yīng)用系統(tǒng)可能不適應(yīng)業(yè)務(wù)的發(fā)展。用戶對軟件提出了新的需求和性能要求。 第6章 結(jié)束語 通過長達將近兩周的軟件工程課程設(shè)計,我們團隊不但學會了軟件工程設(shè)計的基本步驟,而且也學會了如何培養(yǎng)自己的團隊協(xié)作能力。 在開發(fā)初期,團隊必須使用統(tǒng)一的開發(fā)平臺,由小組長統(tǒng)一部署,將小組分為幾個部分,大家分工合作再匯總以提高課程設(shè)計完成的效率,不懂的問題大家也可以相互幫忙解決,不懂的問題就要問,問老師問同學,也可以上網(wǎng)搜索,千萬不要一個人在那里瞎想,因為我們是一個團隊,我們要提高效率必須要相互幫助、良好的協(xié)作! 前期工作做完了后,我們一定要進行測試工作,每個人寫的代碼難免會出現(xiàn)一些問題,測試期間就是對這些問題進行修改,然后總結(jié)經(jīng)驗和教訓! 總之,在這次的設(shè)計過程中,我們學到的不僅是知識,還認識到許多事情。這次設(shè)計使我們的編程水平提高了一大步,使我們充分的認識到合作的可貴。由于這次設(shè)計涉及到數(shù)據(jù)庫、軟件工程、C#,我們學到了不少編程工具與數(shù)據(jù)庫連接的知識,對數(shù)據(jù)庫的操作有了進一步的了解。這次設(shè)計對我們的綜合能力是一次很好的鍛煉,但是我們必須承認自己的能力和知識還很膚淺。所以今后我們的學習道路還是很漫長的。最后,在這里我們要衷心的感謝我們的指導老師楊衛(wèi)明,謝謝他的悉心指導和熱心幫助。由于我們的水平有限,加之時間短暫,故電子相冊管理系統(tǒng)中還有許多不足之處,望老師加以批評指正,我們會在以后的課程設(shè)計中不斷改進,不斷完善。 參考文獻 [01] 李紅.數(shù)據(jù)庫原理與應(yīng)用,高等教育出版,2003年3月。 [02] 謝希仁.計算機網(wǎng)絡(luò).電子工業(yè)出版社,2008年1月。 [03]白以恩.計算機網(wǎng)絡(luò)基礎(chǔ)及應(yīng)用[M]. 哈爾濱:哈爾濱工業(yè)大學出版社,2000.189~258 附錄 系統(tǒng)相關(guān)代碼 系統(tǒng)的主要代碼如下: 用戶登錄: public partial class Login : Form { public Login() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "" || textBox2.Text == "") MessageBox.Show("用戶或密碼有空值?。?!", "信息提示"); else { string mysql; SqlConnection myconn = dataconnection.createConn(); //SqlConnection mysqlconn = new SqlConnection(); //string connString = "database=photo;integrated security=SSPI;server=RJXY302-29\\SQL2005"; //mysqlconn.ConnectionString = connString; //mysqlconn.Open(); mysql = "Select * from us where user=" + textBox1.Text.Trim() + "and passageword=" + textBox2.Text.Trim() + ""; SqlCommand mycmd = new SqlCommand(mysql, myconn ); int i = Convert.ToInt32(mycmd.ExecuteScalar()); if (i <=0) { Form myform = new main (); myform.Show(); this.Hide(); } else { MessageBox.Show("用戶或密碼錯誤?。?!", "信息提示"); myconn.Close(); } } } private void Form8_Load(object sender, EventArgs e) { this.AcceptButton = this.button1; } public string Getusename() { return textBox1.Text.Trim(); } private void textBox1_TextChanged(object sender, EventArgs e) { } } } 相冊管理界面: public partial class oppic : Form { public oppic() { InitializeComponent(); } private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void oppic_Load(object sender, EventArgs e) { int i; DirectoryInfo dinfo = new DirectoryInfo("f:\\相冊庫\\" + this.Text); FileSystemInfo[] fsinfo = dinfo.GetFileSystemInfos(); for (i = 0; i < fsinfo.Length; i++) listBox1.Items.Add(fsinfo[i].ToString()); listBox1.SelectedIndex = 0; pictureBox1.Image = Image.FromFile("f:\\相冊庫\\" + this.Text + "\\" + listBox1.SelectedItem.ToString()); comboBox2.Items.Add("垂直翻轉(zhuǎn)"); comboBox2.Items.Add("水平翻轉(zhuǎn)"); comboBox2.Items.Add("90度水平翻轉(zhuǎn)"); comboBox2.Items.Add("180度水平翻轉(zhuǎn)"); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile("f:\\相冊庫\\" + this.Text + "\\" + listBox1.SelectedItem.ToString()); } private void toolStripButton9_Click(object sender, EventArgs e) { FileInfo Finfo = new FileInfo(listBox1.Text); Finfo.Delete(); } private void button3_Click(object sender, EventArgs e) { } //private void pictureBox2_MouseMove(object sender, MouseEventArgs e) //{ // if (image != null) // { // Cursor.Current = mycur; // Graphics gra = pictureBox1.CreateGraphics(); // Rectangle sourceRec = new Rectangle(e.X - 10, e.Y - 10, 30, 30); // Rectangle destRec = new Rectangle(e.X - 20, e.Y - 20, 50, 50); // gra.DrawImage(image, destRec, sourceRec, GraphicsUnit.Pixel); // } // else // MessageBox.Show("選擇需要顯示的圖片"); //} //Graphics graphics; // Image image1 = Image.FromFile("e\\相冊庫\\云臺山"); // private void button5_Click(object sender, EventArgs e) // { // graphics.Clear(this.BackColor); // int width = Convert.ToInt32(Convert.ToDouble(comboBox1.Text)*image1.Width); // int height = Convert.ToInt32(Convert.ToDouble(comboBox1.Text)*image1.Height); // graphics.DrawImage(image1,180,26,width,height); // } // private void button9_Click(object sender, EventArgs e) // { // graphics.DrawImage(image,new Point(180,26)); // } // Cursor mycur = new Cursor(@"E:\相冊庫\云臺山"); // Bitmap image; // private void button4_Click(object sender, EventArgs e) // { // openFileDialog1.Filter = "Jpeg File(*.jpg)|*.jpg"; // if (openFileDialog1.ShowDialog() == DialogResult.OK) // { // image = new Bitmap(openFileDialog1.FileName); // pictureBox1.Image = image; // pictureBox1.Height = image.Height; // pictureBox1.Width = image.Width; // } // } // private void button6_Click(object sender, EventArgs e) { Bitmap bmp1 = new Bitmap(pictureBox1.Image); switch (comboBox2.SelectedItem.ToString()) { case "垂直翻轉(zhuǎn)": bmp1.RotateFlip(RotateFlipType.Rotate180FlipXY); break; case "水平翻轉(zhuǎn)": bmp1.RotateFlip(RotateFlipType.Rotate90FlipXY); break; case "90度水平翻轉(zhuǎn)": bmp1.RotateFlip(RotateFlipType.Rotate90FlipX); break; case "180度水平翻轉(zhuǎn)": bmp1.RotateFlip(RotateFlipType.Rotate180FlipX); break; } pictureBox2.Image = bmp1; } private void button7_Click(object sender, EventArgs e) { Graphics g = pictureBox2.CreateGraphics(); g.Clear(pictureBox2.BackColor); Bitmap bmap = new Bitmap(pictureBox1.Image); bmap.SetResolution(300f, 300f); g.DrawImage(bmap,pictureBox2.ClientRectangle,0,0,bmap.Width,bmap.Height,GraphicsUnit.Pixel); g.Dispose(); } private void button8_Click(object sender, EventArgs e) { } private void button4_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { pictureBox1.Image = Image.FromFile(openFileDialog1.FileName); } } private void button5_Click(object sender, EventArgs e) { Bitmap bmp = new Bitmap(pictureBox1.Image); for (int i = 0; i < bmp.Width - 1; i++) { for (int j = 0; j < bmp.Height - 1; j++) { Color color = bmp.GetPixel(i, j); Color colorLeft = bmp.GetPixel(i + 1, j + 1); int r = Math.Max(67, Math.Min(255, Math.Abs(color.R - colorLeft.R + 128))); int g = Math.Max(67, Math.Min(255, Math.Abs(color.G - colorLeft.G + 128))); int b = Math.Max(67, Math.Min(255, Math.Abs(color.B - colorLeft.B + 128))); Color colorResult = Color.FromArgb(255, r, g, b); bmp.SetPixel(i, j, colorResult); } pictureBox2.Image = bmp; } } private void button3_Click_1(object sender, EventArgs e) { this.Close(); } private void button8_Click_1(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { // FileInfo Finfo = new FileInfo("E:\\相冊庫\\" + this.Text + "\\" + listBox1.SelectedItem.ToString()); // Finfo.Delete(); } private void button2_Click(object sender, EventArgs e) { Bitmap oldBitmap = new Bitmap(this.pictureBox1.Image); Bitmap newBitmap = new Bitmap(pictureBox1.Image); int Height = newBitmap.Height; int width = newBitmap.Width; Color color; int r, g, b, Result = 0; for (int i = 0; i < width; i++) { for (int j = 0; j < Height; j++) { color = oldBitmap.GetPixel(i, j); r = color.R; g = color.G; b = color.B; Result = ((int)(0.7 * r) + (int)(0.2 * g) + (int)(0.1 * b)); newBitmap.SetPixel(i, j, Color.FromArgb(Result, Result, Result)); } this.pictureBox2.Image = newBitmap; } } private void button8_Click_2(object sender, EventArgs e) { Bitmap myBitmap = new Bitmap(pictureBox1.Image); Graphics g = pictureBox2.CreateGraphics(); g.Clear(pictureBox1.BackColor); Point P1 = new Point(10, 10); Point P2 = new Point(100,10); Point P3 = new Point(50,100); Point[] P = { P1,P2,P3}; g.DrawImage(myBitmap,P); g.Dispose(); } private void button9_Click(object sender, EventArgs e) { Bitmap oldBitmap = new Bitmap(pictureBox1.Image); Bitmap newBitmap = (Bitmap)oldBitmap.Clone(); int height = newBitmap.Height; int width = newBitmap.Width; Color pixel; int[] Laplacian = {-1,-1,-1,-1,9,-1,-1,-1,-1 }; for (int x = 1; x < width -1; x++) { for (int y = 1; y < height - 1; y++) { int r = 0, g = 0, b = 0; int Index = 0; for (int col = -1; col <= 1; col++) { for (int row = -1; row <= 1; row++) { pixel = oldBitmap.GetPixel(x + row, y + col); r += pixel.R * Laplacian[Index]; g += pixel.G * Laplacian[Index]; b += pixel.B * Laplacian[Index]; Index++; } } r = r > 255 ? 255 : r; r = r < 0 ? 0 : r; g = g > 255 ? 255: g; g = g < 0 ? 0 : g; b = b > 255 ? 255 : b; b = b < 0 ? 0 : b; newBitmap.SetPixel(x - 1, y - 1, Color.FromArgb(r, g, b)); } this.pictureBox2.Image = newBitmap; } } private void button10_Click(object sender, EventArgs e) { Bitmap myBitmap = new Bitmap(pictureBox1.Image); int Height = myBitmap.Height; int Width = myBitmap.Width; Bitmap bitmap = (Bitmap)myBitmap.Clone(); Color pixle; int[] Gauss = {1,2,1,2,4,2,1,2,1 }; for(int x = 1;x < Width -1; x++) for (int y = 1; y < Height - 1; y++) { int r = 0, g = 0, b = 0; int Index = 0; for (int col = -1; col <= 1; col++) for (int row = -1; row <= 1; row++) { pixle = myBitmap.GetPixel(x + row, y + col); r += pixle.R * Gauss[Index]; g += pixle.G * Gauss[Index]; b += pixle.B * Gauss[Index]; Index++; } r /= 16; g /= 16; b /= 16; r = r > 255 ? 255 : r; r = r < 0 ? 0 : r; g = g > 255 ? 255 : g; g = g < 0 ? 0 : g; b = b > 255 ? 255 : b; b = b < 0 ? 0 : b; bitmap.SetPixel(x - 1, y - 1, Color.FromArgb(r, g, b)); } this.pictureBox2.Image = bitmap; } } } 相冊查詢: public partial class PS : Form { public PS() {- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 電子相冊 系統(tǒng) 需求 分析
鏈接地址:http://weibangfood.com.cn/p-6683890.html