本發(fā)明涉及圖片展示技術(shù)領(lǐng)域,特別涉及一種生成縮略圖的方法及裝置。
背景技術(shù):
如今,隨著各種終端(例如智能手機、平板電腦等)越來越深入到日常生活中,很多情況下,比如在路途中,需要使用sim卡流量來上網(wǎng)的,人們希望使用較少的網(wǎng)絡(luò)流量來獲取較多的信息,這其中在圖片占據(jù)了較大的流量,通過縮略圖的方式可以在基本不降低用戶體驗的同時,有效的降低網(wǎng)絡(luò)流量。故現(xiàn)今出現(xiàn)了很多生成縮略圖功能的方法,例如,使用php實時生成縮略圖,使用nginx+lua實現(xiàn)生成縮略圖,還有使用nginx生成縮略圖。但是在上述方法中,用戶每次訪問都需要生成一次縮略圖,這樣會對cpu和硬盤帶來巨大的壓力。如何妥善的解決上述問題,就成為了業(yè)界亟待解決的課題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種生成縮略圖的方法及裝置,用以將生成的縮略圖保存到硬盤,避免每次請求該縮略圖的時候都即時生成新的縮略圖,從而降低了系統(tǒng)的cpu和內(nèi)存運行負荷。
根據(jù)本發(fā)明實施例的第一方面,提供一種生成縮略圖的方法,包括:
當(dāng)調(diào)用原圖的縮略圖時,搜索是否存儲有所述原圖的縮略圖;
當(dāng)未搜索到所述原圖的縮略圖時,根據(jù)原圖的地址調(diào)用所述原圖;
根據(jù)所述原圖生成符合預(yù)設(shè)的縮略圖條件的縮略圖;
將所述原圖的縮略圖保存在所述預(yù)設(shè)的縮略圖文件夾中。
在一個實施例中,所述當(dāng)調(diào)用原圖的縮略圖時,搜索是否存儲有所述原圖的縮略圖,包括:當(dāng)調(diào)用原圖的縮略圖時,根據(jù)所述預(yù)設(shè)的縮略圖文件夾的地址,訪問所述預(yù)設(shè)的縮略圖文件夾;
在所述預(yù)設(shè)的縮略圖文件夾中,搜索是否存儲有所述原圖的縮略圖。
在一個實施例中,所述當(dāng)未搜索到所述原圖的縮略圖時,根據(jù)原圖的地址調(diào)用所述原圖,包括:
根據(jù)所述原圖的文件名,在所述預(yù)設(shè)的縮略圖文件夾中搜索所述原圖的縮略圖;
當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中未存儲所述原圖的縮略圖時,根據(jù)所述原圖的地址調(diào)用所述原圖。
在一個實施例中,所述根據(jù)所述原圖生成符合預(yù)設(shè)的縮略圖條件的縮略圖,包括:
根據(jù)預(yù)設(shè)的縮略圖標(biāo)準寬度和高度,設(shè)置所述原圖的縮略圖的尺寸;
根據(jù)預(yù)設(shè)的圖像質(zhì)量數(shù)值,壓縮所述原圖的縮略圖。
在一個實施例中,還包括:
當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中存儲有所述原圖的縮略圖時,展示所述原圖的縮略圖。
根據(jù)本發(fā)明實施例的第二方面,提供一種生成縮略圖的裝置,包括:
搜索模塊,用于當(dāng)調(diào)用原圖的縮略圖時,搜索是否存儲有所述原圖的縮略圖;
調(diào)用模塊,用于當(dāng)未搜索到所述原圖的縮略圖時,根據(jù)原圖的地址調(diào)用所述原圖;
生成模塊,用于根據(jù)所述原圖生成符合預(yù)設(shè)的縮略圖條件的縮略圖;
保存模塊,用于將所述原圖的縮略圖保存在所述預(yù)設(shè)的縮略圖文件夾中。
在一個實施例中,所述搜索模塊,包括:
訪問子模塊,用于當(dāng)調(diào)用原圖的縮略圖時,根據(jù)所述預(yù)設(shè)的縮略圖文件夾的地址,訪問所述預(yù)設(shè)的縮略圖文件夾;
第一搜索子模塊,用于在所述預(yù)設(shè)的縮略圖文件夾中,搜索是否存儲有所述原圖的縮略圖。
在一個實施例中,所述調(diào)用模塊,包括:
第二搜索子模塊,用于根據(jù)所述原圖的文件名,在所述預(yù)設(shè)的縮略圖文件夾中搜索所述原圖的縮略圖;
調(diào)用子模塊,用于當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中未存儲所述原圖的縮略圖時,根據(jù)所述原圖的地址調(diào)用所述原圖。
在一個實施例中,所述生成模塊,包括:
設(shè)置子模塊,用于根據(jù)預(yù)設(shè)的縮略圖標(biāo)準寬度和高度,設(shè)置所述原圖的縮略圖的尺寸;
壓縮子模塊,用于根據(jù)預(yù)設(shè)的圖像質(zhì)量數(shù)值,壓縮所述原圖的縮略圖。
在一個實施例中,還包括:
展示模塊,用于當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中存儲有所述原圖的縮略圖時,展示所述原圖的縮略圖。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1為本發(fā)明一示例性實施例示出的一種生成縮略圖的方法的流程圖;
圖2為本發(fā)明一示例性實施例示出的一種生成縮略圖的方法的步驟S11的流程圖;
圖3為本發(fā)明一示例性實施例示出的一種生成縮略圖的方法的步驟S12的流程圖;
圖4為本發(fā)明一示例性實施例示出的一種生成縮略圖的方法的步驟S13的流程圖;
圖5為本發(fā)明另一示例性實施例示出的一種生成縮略圖的方法的流程圖;
圖6為本發(fā)明一示例性實施例示出的一種生成縮略圖的裝置的框圖;
圖7為本發(fā)明一示例性實施例示出的一種生成縮略圖的裝置的搜索模塊61的框圖;
圖8為本發(fā)明一示例性實施例示出的一種生成縮略圖的裝置的調(diào)用模塊62的框圖;
圖9為本發(fā)明一示例性實施例示出的一種生成縮略圖的裝置的生成模塊63的框圖;
圖10為本發(fā)明另一示例性實施例示出的一種生成縮略圖的裝置的框圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是根據(jù)一示例性實施例示出的一種生成縮略圖的方法流程圖,如圖1所示,該生成縮略圖的方法,包括以下步驟S11-S14:
在步驟S11中,當(dāng)調(diào)用原圖的縮略圖時,搜索是否存儲有所述原圖的縮略圖;
在步驟S12中,當(dāng)未搜索到所述原圖的縮略圖時,根據(jù)原圖的地址調(diào)用所述原圖;
在步驟S13中,根據(jù)所述原圖生成符合預(yù)設(shè)的縮略圖條件的縮略圖;
在步驟S14中,將所述原圖的縮略圖保存在所述預(yù)設(shè)的縮略圖文件夾中。
在一個實施例中,當(dāng)系統(tǒng)需要調(diào)用原圖的縮略圖時,根據(jù)該預(yù)設(shè)的縮略圖文件夾的地址,訪問該預(yù)設(shè)的縮略圖文件夾。在該預(yù)設(shè)的縮略圖文件夾中,搜索是否存儲有該原圖的縮略圖。根據(jù)該原圖的文件名,在該預(yù)設(shè)的縮略圖文件夾中搜索該原圖的縮略圖。當(dāng)在該預(yù)設(shè)的縮略圖文件夾中未存儲該原圖的縮略圖時,根據(jù)該原圖的地址調(diào)用該原圖。然后根據(jù)預(yù)設(shè)的縮略圖標(biāo)準寬度和高度,設(shè)置該原圖的縮略圖的尺寸,再根據(jù)預(yù)設(shè)的圖像質(zhì)量數(shù)值,壓縮該原圖的縮略圖,之后將該原圖的縮略圖保存在該預(yù)設(shè)的縮略圖文件夾中,當(dāng)以后需要調(diào)用該原圖的縮略圖時,就可以直接從該預(yù)設(shè)的縮略圖文件夾中直接調(diào)用了,就無需每次都生成新的縮略圖,從而降低了系統(tǒng)的cpu和內(nèi)存的運行負擔(dān)。
當(dāng)在該預(yù)設(shè)的縮略圖文件夾中存儲有該原圖的縮略圖時,展示該原圖的縮略圖。本發(fā)明通過將生成的縮略圖保存到硬盤,避免每次請求該縮略圖的時候都即時生成新的縮略圖,從而降低了系統(tǒng)的cpu和內(nèi)存運行負荷。
在一個實施例中,如圖2所示,步驟S11包括如下步驟S21-S22:
在步驟S21中,當(dāng)調(diào)用原圖的縮略圖時,根據(jù)所述預(yù)設(shè)的縮略圖文件夾的地址,訪問所述預(yù)設(shè)的縮略圖文件夾;
在步驟S22中,在所述預(yù)設(shè)的縮略圖文件夾中,搜索是否存儲有所述原圖的縮略圖。
在一個實施例中,當(dāng)系統(tǒng)需要調(diào)用原圖的縮略圖給用戶觀看時,需要系統(tǒng)執(zhí)行兩步操作。第一步操作是根據(jù)系統(tǒng)中預(yù)設(shè)的縮略圖文件夾的地址來訪問該預(yù)設(shè)的縮略圖文件夾。第二步操作是在該預(yù)設(shè)的縮略圖文件夾中,根據(jù)原圖的文件名來搜索,因為原圖的文件名與縮略圖的文件名是一樣的。本實施例中的技術(shù)方案為該兩步操作的第一步操作。
例如,不妨假設(shè),原圖的文件名為“1.jpg”,預(yù)設(shè)的縮略圖文件夾的地址為www.ttlsa.com/resize_100x100/image。當(dāng)需要調(diào)用文件名為“1.jpg”的縮略圖時,通過訪問www.ttlsa.com/resize_100x100/image。在該文件夾中搜索是否存在文件名為“1.jpg”的縮略圖。
在一個實施例中,如圖3所示,步驟S12包括如下步驟S31-S32:
在步驟S31中,根據(jù)所述原圖的文件名,在所述預(yù)設(shè)的縮略圖文件夾中搜索所述原圖的縮略圖;
在步驟S32中,當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中未存儲所述原圖的縮略圖時,根據(jù)所述原圖的地址調(diào)用所述原圖。
在一個實施例中,當(dāng)系統(tǒng)需要調(diào)用原圖的縮略圖給用戶觀看時,需要系統(tǒng)執(zhí)行了兩步操作。第一步操作是根據(jù)系統(tǒng)中預(yù)設(shè)的縮略圖文件夾的地址來訪問該預(yù)設(shè)的縮略圖文件夾。第二步操作是在該預(yù)設(shè)的縮略圖文件夾中,根據(jù)原圖的文件名來搜索,因為原圖的文件名與縮略圖的文件名是一樣的。本實施例中的技術(shù)方案為該兩步操作的第二步操作。
例如,不妨假設(shè),原圖的文件名為“1.jpg”,預(yù)設(shè)的縮略圖文件夾的地址為www.ttlsa.com/resize_100x100/image,原圖的地址為www.ttlsa.com/image。當(dāng)系統(tǒng)需要調(diào)用文件名為“1.jpg”的縮略圖給用戶瀏覽時,可通過鏈接地址www.ttlsa.com/resize_100x100/image來訪問。在該文件夾中搜索是否存在文件名為“1.jpg”的縮略圖。若搜索結(jié)果為在該文件夾中不存在名為“1.jpg”的縮略圖時,則根據(jù)原圖的地址www.ttlsa.com/image來訪問原圖的文件夾,根據(jù)原圖的文件名“1.jpg”來調(diào)用原圖。
在一個實施例中,如圖4所示,步驟S13包括如下步驟S41-S42:
在步驟S41中,根據(jù)預(yù)設(shè)的縮略圖標(biāo)準寬度和高度,設(shè)置所述原圖的縮略圖的尺寸;
在步驟S42中,根據(jù)預(yù)設(shè)的圖像質(zhì)量數(shù)值,壓縮所述原圖的縮略圖。
在一個實施例中,給用戶展示的縮略圖的尺寸是需要保持一致的,所以對所有的原圖統(tǒng)一都按照預(yù)設(shè)的縮略圖標(biāo)準寬度和高度來進行處理。對按照預(yù)設(shè)的縮略圖標(biāo)準寬度和高度來設(shè)置過的圖像,再按照預(yù)設(shè)的圖像質(zhì)量數(shù)值進行壓縮。
例如,首先對原圖按照尺寸設(shè)置為100*100,再設(shè)置圖像質(zhì)量為75,經(jīng)過上述處理的圖像就是符合預(yù)設(shè)標(biāo)準的縮略圖。
在一個實施例中,如圖5所示,步驟還包括如下步驟S51:
在步驟S51中,當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中存儲有所述原圖的縮略圖時,展示所述原圖的縮略圖。
在一個實施例中,在預(yù)設(shè)的縮略圖文件夾中存儲有系統(tǒng)需要展示的原圖的縮略圖時,系統(tǒng)可以直接調(diào)用已經(jīng)存儲在硬盤中的該原圖的縮略圖并展示給用戶。
在一個實施例中,圖6是根據(jù)一示例性實施例示出的一種生成縮略圖的裝置框圖。如圖6示,該裝置包括搜索模塊61、調(diào)用模塊62、生成模塊63和保存模塊64。
該搜索模塊61,用于當(dāng)調(diào)用原圖的縮略圖時,搜索是否存儲有所述原圖的縮略圖;
該調(diào)用模塊62,用于當(dāng)未搜索到所述原圖的縮略圖時,根據(jù)原圖的地址調(diào)用所述原圖;
該生成模塊63,用于根據(jù)所述原圖生成符合預(yù)設(shè)的縮略圖條件的縮略圖;
該保存模塊64,用于將所述原圖的縮略圖保存在所述預(yù)設(shè)的縮略圖文件夾中。
如圖7所示,該搜索模塊61包括訪問子模塊71和第一搜索子模塊72。
該訪問子模塊71,用于當(dāng)調(diào)用原圖的縮略圖時,根據(jù)所述預(yù)設(shè)的縮略圖文件夾的地址,訪問所述預(yù)設(shè)的縮略圖文件夾;
該第一搜索子模塊72,用于在所述預(yù)設(shè)的縮略圖文件夾中,搜索是否存儲有所述原圖的縮略圖。
如圖8所示,該調(diào)用模塊62包括第二搜索子模塊81和調(diào)用子模塊82。
該第二搜索子模塊81,用于根據(jù)所述原圖的文件名,在所述預(yù)設(shè)的縮略圖文件夾中搜索所述原圖的縮略圖;
該調(diào)用子模塊82,用于當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中未存儲所述原圖的縮略圖時,根據(jù)所述原圖的地址調(diào)用所述原圖。
如圖9所示,該生成模塊63包括設(shè)置子模塊91和壓縮子模塊92。
該設(shè)置子模塊91,用于根據(jù)預(yù)設(shè)的縮略圖標(biāo)準寬度和高度,設(shè)置所述原圖的縮略圖的尺寸;
該壓縮子模塊92,用于根據(jù)預(yù)設(shè)的圖像質(zhì)量數(shù)值,壓縮所述原圖的縮略圖。
如圖10所示,還包括展示模塊101。
該展示模塊101,用于當(dāng)在所述預(yù)設(shè)的縮略圖文件夾中存儲有所述原圖的縮略圖時,展示所述原圖的縮略圖。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。