的圖片的橫向像素的個(gè) 數(shù)為640,縱向像素的個(gè)數(shù)為480。像素越多的縮略圖片越接近原始圖片。
[0163] 具體的,步驟401可以包括:通過提取原始圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的 元素得到至少一個(gè)縮略圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣。
[0164] 由于原始圖片的圖片數(shù)據(jù)可以通過像素矩陣表征,而原始圖片的圖片數(shù)據(jù)對(duì)應(yīng)的 像素矩陣中的元素的位置與原始圖片中像素的位置一一對(duì)應(yīng),每個(gè)元素的值指示原始圖 片中元素對(duì)應(yīng)位置的像素的亮度值,因此,可以根據(jù)原始圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣 得到縮略圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣。當(dāng)原始圖片的大小是縮略圖片的大小的整數(shù) 倍時(shí),可以采用最近鄰插值法得到縮略圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣。縮略圖片上每 個(gè)像素的亮度值相當(dāng)于原始圖片上的對(duì)應(yīng)的像素的亮度值。假設(shè)原始圖片Al的大小為 800*600 (800表示圖片每一行的像素個(gè)數(shù),600表示圖片每一列的像素個(gè)數(shù)),原始圖片Al 的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的行數(shù)為800,列數(shù)為600,則一個(gè)大小為400*300的縮略圖片 A2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的(i,j)位置上的元素為原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的 像素矩陣中的位于(2i,2j)位置上的元素。其中,(i,j)位置表示像素矩陣中第i行,第j 列的位置,〇 < i < 399,0 < j < 299。也就是說,可以通過提取原始圖片的圖片數(shù)據(jù)對(duì)應(yīng) 的像素矩陣中位置為(〇,〇)、(0, 2)··· (2,0)、(2, 2)··· (2i,2 j)··· (798, 598)的元素得到大小 為400*300的縮略圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣。需要說明的是,當(dāng)原始圖片的大小和 縮略圖片的大小為其他整數(shù)倍關(guān)系時(shí),縮略圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的(i,j)位 置上的元素為原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的(Ni,Nj)位置上的元素。如一 個(gè)大小為200*150的縮略圖片A3的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的(i,j)位置上的元素為 原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的(3i,3j)位置上的元素。
[0165] 示例的,假設(shè)原始圖片Bl的大小為8*8,原始圖片Bl的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣
,ajO彡m彡7,0彡η彡7)的值指示原始圖 片Bl中元素對(duì)應(yīng)位置的像素的亮度值,則原始圖片Bl對(duì)應(yīng)的大小為4*4的縮略圖片Β2的 圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣為
原始圖片Bl對(duì)應(yīng)的大小為2*2的縮略 圖片Β3的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣為
[0166] 在步驟402中,服務(wù)器將至少一個(gè)縮略圖片的圖片數(shù)據(jù)與原始圖片的圖片數(shù)據(jù)組 成的η個(gè)圖片數(shù)據(jù)按照占用空間的大小升序排序,η大于或等于2。
[0167] 在步驟401的基礎(chǔ)上,將至少一個(gè)縮略圖片的圖片數(shù)據(jù)與原始圖片的圖片數(shù)據(jù)組 成的η個(gè)圖片數(shù)據(jù)按照占用空間的大小升序排序。假設(shè)原始圖片Al的大小為800*600,其 中一個(gè)縮略圖片A2的大小為400*300,另一個(gè)縮略圖片A3的大小為200*150,則原始圖片 Al的圖片數(shù)據(jù)、縮略圖片A2的圖片數(shù)據(jù)和縮略圖片A3的圖片數(shù)據(jù)組成的3個(gè)圖片數(shù)據(jù)按 照占用空間的大小升序排序依次為縮略圖片A3的圖片數(shù)據(jù)、縮略圖片A2的圖片數(shù)據(jù)、原始 圖片Al的圖片數(shù)據(jù)。
[0168] 在步驟403中,服務(wù)器按照排序的順序,在原始圖片的圖片數(shù)據(jù)占用的存儲(chǔ)空間 中存儲(chǔ)η個(gè)圖片數(shù)據(jù)。
[0169] 其中,η個(gè)圖片數(shù)據(jù)的每?jī)蓚€(gè)相鄰的圖片數(shù)據(jù)中,占用存儲(chǔ)空間較小的圖片數(shù)據(jù)嵌 套于占用存儲(chǔ)空間較大的圖片數(shù)據(jù)中,η個(gè)圖片數(shù)據(jù)中每個(gè)圖片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)一個(gè) 圖片數(shù)據(jù)的標(biāo)識(shí)。
[0170] 步驟403具體可以包括:按照排序的順序,在原始圖片的圖片數(shù)據(jù)占用的存儲(chǔ)空 間中存儲(chǔ)η個(gè)圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素。
[0171] 需要說明的是,η個(gè)圖片數(shù)據(jù)的首個(gè)圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素按照行存儲(chǔ) 方式進(jìn)行存儲(chǔ),η個(gè)圖片數(shù)據(jù)的每?jī)蓚€(gè)相鄰的圖片數(shù)據(jù)中,占用存儲(chǔ)空間較大的圖片數(shù)據(jù)對(duì) 應(yīng)的像素矩陣的元素中刪除占用存儲(chǔ)空間較小的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素之后的 元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ)。
[0172] 按照步驟402將至少一個(gè)縮略圖片的圖片數(shù)據(jù)與原始圖片的圖片數(shù)據(jù)組成的η個(gè) 圖片數(shù)據(jù)按照占用空間的大小升序排序之后,在原始圖片的圖片數(shù)據(jù)占用的存儲(chǔ)空間中存 儲(chǔ)η個(gè)圖片數(shù)據(jù)。如步驟402中將原始圖片Al的圖片數(shù)據(jù)、縮略圖片Α2的圖片數(shù)據(jù)和縮略 圖片A3的圖片數(shù)據(jù)組成的3個(gè)圖片數(shù)據(jù)按照占用空間的大小升序排序依次為縮略圖片A3 的圖片數(shù)據(jù)、縮略圖片A2的圖片數(shù)據(jù)、原始圖片Al的圖片數(shù)據(jù)之后,原始圖片Al的圖片數(shù) 據(jù)占用的存儲(chǔ)空間中存儲(chǔ)3個(gè)圖片數(shù)據(jù)??s略圖片A3的圖片數(shù)據(jù)嵌套于縮略圖片A2的圖 片數(shù)據(jù)中,縮略圖片A2的圖片數(shù)據(jù)嵌套于原始圖片Al的圖片數(shù)據(jù)中,且縮略圖片A3的圖 片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)標(biāo)識(shí)A3,縮略圖片A2的圖片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)標(biāo)識(shí)A2,原始圖片 Al的圖片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)標(biāo)識(shí)A1。需要說明的是,每個(gè)圖片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)的一 個(gè)圖片數(shù)據(jù)的標(biāo)識(shí)唯一指示該圖片數(shù)據(jù)。該標(biāo)識(shí)例如可以是原始圖片或縮略圖片的大小, 也可以是原始圖片或縮略圖片的圖片名稱。
[0173] 具體的,在原始圖片Al的圖片數(shù)據(jù)占用的存儲(chǔ)空間中存儲(chǔ)3個(gè)圖片數(shù)據(jù)對(duì)應(yīng)的像 素矩陣的元素,縮略圖片A3的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ), 縮略圖片A2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素中刪除縮略圖片A3的圖片數(shù)據(jù)對(duì)應(yīng)的像素 矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ),原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素中 刪除縮略圖片A2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ)。
[0174] 圖4-2示出了原始圖片Al的圖片數(shù)據(jù)、縮略圖片A2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣 的元素的存儲(chǔ)結(jié)構(gòu)示意圖,如圖4-2所示,縮略圖片A2的圖片數(shù)據(jù)為首個(gè)圖片數(shù)據(jù),其對(duì)應(yīng) 的像素矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ),縮略圖片A2的圖片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)標(biāo) 識(shí)A2 ;原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素中刪除縮略圖片A2的圖片數(shù)據(jù)對(duì)應(yīng) 的像素矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ),存儲(chǔ)位置標(biāo)識(shí)為A1-A2。原始圖片Al的圖片 數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)標(biāo)識(shí)Al。
[0175] 圖4-3示出了原始圖片Al的圖片數(shù)據(jù)、縮略圖片A2的圖片數(shù)據(jù)和縮略圖片A3的 圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素的存儲(chǔ)結(jié)構(gòu)示意圖,如圖4-3所示,縮略圖片A3的圖片數(shù) 據(jù)對(duì)應(yīng)的像素矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ),縮略圖片A3的圖片數(shù)據(jù)的存儲(chǔ)位置 對(duì)應(yīng)標(biāo)識(shí)A3??s略圖片A2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素中刪除縮略圖片A3的圖片數(shù) 據(jù)對(duì)應(yīng)的像素矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ),存儲(chǔ)位置標(biāo)識(shí)為A2-A3,縮略圖片A2 的圖片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)標(biāo)識(shí)A2。原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素中刪 除縮略圖片A2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ),存儲(chǔ)位置標(biāo) 識(shí)為A1-A2,原始圖片Al的圖片數(shù)據(jù)的存儲(chǔ)位置對(duì)應(yīng)標(biāo)識(shí)A1。
[0176] 以步驟401中的原始圖片B1、縮略圖片B2和縮略圖片B3為例,三個(gè)圖片的圖片數(shù) 據(jù)對(duì)應(yīng)的像素矩陣的元素的存儲(chǔ)結(jié)構(gòu)如圖4-4所示,縮略圖片B3的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩 陣的元素按照行存儲(chǔ)方式進(jìn)行存儲(chǔ),即先存儲(chǔ)縮略圖片B3的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中 的第一行元素 a。。和a。4,再存儲(chǔ)第二行元素 a4。和a 44。接著存儲(chǔ)縮略圖片A2的圖片數(shù)據(jù)對(duì) 應(yīng)的像素矩陣的元素中刪除縮略圖片A3的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素的元素,并按 照行存儲(chǔ)方式進(jìn)行存儲(chǔ),即先存儲(chǔ)縮略圖片B2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的第一行剩 余兀素和a。6,再存儲(chǔ)弟-·彳丁兀素和。、和4和& 26,然后存儲(chǔ)弟二彳丁剩余兀素和& 46, 最后存儲(chǔ)第四行元素 a6。、a62、a64和a66。同樣的,可以存儲(chǔ)原始圖片BI的圖片數(shù)據(jù)對(duì)應(yīng)的 像素矩陣中剩余的元素。由于原始圖片Bl的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素除縮略圖片 B2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣的元素之外的元素較多,因此,不再對(duì)其列舉并詳細(xì)說明。
[0177] 在步驟404中,終端向服務(wù)器發(fā)送圖片查看請(qǐng)求。
[0178] 該圖片查看請(qǐng)求包括目標(biāo)圖片的標(biāo)識(shí),該目標(biāo)圖片為原始圖片或縮略圖片,縮略 圖片為對(duì)原始圖片進(jìn)行縮略處理后得到的。
[0179] 目標(biāo)圖片的標(biāo)識(shí)與步驟403中存儲(chǔ)的圖片數(shù)據(jù)的標(biāo)識(shí)相對(duì)應(yīng),當(dāng)存儲(chǔ)的圖片數(shù)據(jù) 的標(biāo)識(shí)為原始圖片或縮略圖片的大小時(shí),目標(biāo)圖片的標(biāo)識(shí)可以為目標(biāo)圖片的大小,當(dāng)存儲(chǔ) 的圖片數(shù)據(jù)的標(biāo)識(shí)為原始圖片或縮略圖片的圖片名稱時(shí),目標(biāo)圖片的標(biāo)識(shí)可以為目標(biāo)圖片 的圖片名稱。
[0180] 在步驟405中,服務(wù)器從原始圖片的圖片數(shù)據(jù)占用的存儲(chǔ)空間中,在目標(biāo)圖片的 標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)位置獲取圖片數(shù)據(jù)作為目標(biāo)圖片的圖片數(shù)據(jù)。
[0181] 其中,任一縮略圖片的圖片數(shù)據(jù)嵌套存儲(chǔ)于原始圖片的圖片數(shù)據(jù)占用的存儲(chǔ)空間 中。以步驟404中的原始圖片AU縮略圖片A2和縮略圖片A3為例,服務(wù)器在接收到終端發(fā) 送的圖片查看請(qǐng)求之后,假設(shè)該圖片查看請(qǐng)求包括縮略圖片A2的標(biāo)識(shí)A2,則服務(wù)器從原始 圖片Al的圖片數(shù)據(jù)占用的存儲(chǔ)空間中,在標(biāo)識(shí)A2對(duì)應(yīng)的存儲(chǔ)位置獲取圖片數(shù)據(jù)作為縮略 圖片A2的圖片數(shù)據(jù)。
[0182] 在步驟406中,服務(wù)器將目標(biāo)圖片的圖片數(shù)據(jù)發(fā)送至終端。
[0183] 服務(wù)器在目標(biāo)圖片的標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)位置獲取到目標(biāo)圖片的圖片數(shù)據(jù)之后,將目 標(biāo)圖片的圖片數(shù)據(jù)發(fā)送至終端。
[0184] 在步驟407中,終端對(duì)目標(biāo)圖片的圖片數(shù)據(jù)進(jìn)行處理,得到目標(biāo)圖片。
[0185] 目標(biāo)圖片的圖片數(shù)據(jù)包括原始圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中至少一個(gè)元素。 對(duì)目標(biāo)圖片的圖片數(shù)據(jù)進(jìn)行重新再排列,即可得到目標(biāo)圖片。如圖4-5所示,步驟407可以 包括:
[0186] 在子步驟4071中,將目標(biāo)圖片的圖片數(shù)據(jù)包含的元素按照在原始圖片的圖片數(shù) 據(jù)對(duì)應(yīng)的像素矩陣中的位置進(jìn)行行提取得到目標(biāo)圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣。
[0187] 步驟403中,服務(wù)器按照?qǐng)D片數(shù)據(jù)占用空間大小順序,在原始圖片的圖片數(shù)據(jù)占 用的存儲(chǔ)空間中存儲(chǔ)η個(gè)圖片數(shù)據(jù)。以圖4-3為例,若原始圖片Al為目標(biāo)圖片,服務(wù)器將 原始圖片Al的圖片數(shù)據(jù)給終端后,終端將原始圖片Al的圖片數(shù)據(jù)包含的元素按照在原始 圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的位置進(jìn)行行提取,得到原始圖片Al的圖片數(shù)據(jù)對(duì) 應(yīng)的像素矩陣;若縮略圖片A2為目標(biāo)圖片,服務(wù)器將縮略圖片A2的圖片數(shù)據(jù)給終端后,終 端將縮略圖片A2的圖片數(shù)據(jù)包含的元素按照在原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中 的位置進(jìn)行行提取,得到縮略圖片A2的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣;若縮略圖片A3為目標(biāo)圖 片,服務(wù)器將縮略圖片A3的圖片數(shù)據(jù)給終端后,終端將縮略圖片A3的圖片數(shù)據(jù)包含的元素 按照在原始圖片Al的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的位置進(jìn)行行提取,得到縮略圖片A3的 圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣。
[0188] 在子步驟4072中,根據(jù)目標(biāo)圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣確定目標(biāo)圖片。
[0189] 確定了目標(biāo)圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣,即可確定該目標(biāo)圖片。
[0190] 相關(guān)技術(shù)中,終端或服務(wù)器一般都存儲(chǔ)有原始圖片對(duì)應(yīng)的縮略圖片的圖片數(shù)據(jù)。 比如在終端顯示圖片的時(shí)候,會(huì)有不同尺寸的縮略圖片,供不同場(chǎng)景使用。如在微博主頁(yè)中 使用縮略圖片,在社交空間中使用縮略圖片。圖4-6示出的是大小為800*600的原始圖片的 示意圖。圖4-7示出的縮略圖片是圖4-6中的原始圖片縮放一倍后的圖片,該縮略圖片的 寬度為原始圖片寬度的1/2,該縮略圖片的高度為原始圖片高度的1/2。圖4-8示出的縮略 圖片是圖4-6中的原始圖片縮放2倍后的圖片,該縮略圖片的寬度為原始圖片寬度的1/4, 該縮略圖片的高度為原始圖片高度的1/4。
[0191] 本公開實(shí)施例提供的圖片處理方法,采用了一種沒有冗佘的圖片處理方法存儲(chǔ) 原始圖片和不同尺寸的縮略圖片,且只需要存儲(chǔ)一份原始圖片的圖片數(shù)據(jù),改變?cè)搱D片數(shù) 據(jù)存儲(chǔ)的順序結(jié)構(gòu),就可以快速地生成相應(yīng)的縮略圖片,該過程類似于圖像學(xué)中紋理、渲染 時(shí),金字塔模型的方法,其中,紋理在圖形學(xué)中用于增強(qiáng)場(chǎng)景的真實(shí)感,比如繪制一個(gè)地面, 簡(jiǎn)單一點(diǎn),可以直接使用一個(gè)矩形來表示,稍微復(fù)雜一點(diǎn)可以用三角形網(wǎng)格來表示,再?gòu)?fù)雜 一點(diǎn)就可以使用地面紋理,有了紋理之后,地面的真實(shí)感明顯增強(qiáng)。渲染是一種用于實(shí)現(xiàn) 一些特殊效果的操作,比如環(huán)境映射這一特殊效果,當(dāng)繪制一個(gè)光滑的球體時(shí),通過渲染操 作,可以使該球體反射周圍的環(huán)境。圖4-9示出了一種原始圖片的圖片數(shù)據(jù)的存儲(chǔ)示意圖, 圖中每個(gè)元素的值指示原始圖片中元素對(duì)應(yīng)位置的像素的亮度值,如第0行第0列存儲(chǔ)的 元素的值指示該原始圖片中第〇行第〇列的像素的亮度值。當(dāng)原始圖片大小是縮略圖片大 小的整數(shù)倍時(shí),可以采用鄰插值法得到縮略圖片。圖4-9中的箭頭指示的是圖形學(xué)中的紋 理渲染等圖片處理過程。本公開的圖片處理方法,無需同時(shí)分別存儲(chǔ)原始圖片的圖片數(shù)據(jù) 和縮略圖片的圖片數(shù)據(jù),因此,會(huì)節(jié)省圖片的存儲(chǔ)空間,尤其是對(duì)于大數(shù)據(jù)海量圖片來說, 可以更有效地節(jié)省服務(wù)器的存儲(chǔ)空間。同時(shí),服務(wù)器也無需根據(jù)原始圖片的圖片數(shù)據(jù)實(shí)時(shí) 生成相應(yīng)的縮略圖片,因此,減輕了服務(wù)器計(jì)算的壓力,還解決了緩存等問題。該圖片處理 方法利用了縮略圖片和原始圖片之間有很多像素是共同的點(diǎn),僅需對(duì)原始圖片的圖片數(shù)據(jù) 的像素進(jìn)行重新組織即可。終端在顯示縮略圖片上時(shí),按照正常順序直接顯示,在顯示原始 圖片時(shí),只需在終端上進(jìn)行簡(jiǎn)單排序即可,計(jì)算壓力小。解決了服務(wù)器端根據(jù)原始圖片實(shí)時(shí) 生成縮略圖片,當(dāng)有成千上萬個(gè)用戶同時(shí)請(qǐng)求時(shí),大大消耗服務(wù)器資源的問題。
[0192] 需要說明的是,本公開實(shí)施例提供的圖片處理方法,不僅適用于彩色圖片,也適用 于黑白圖片,當(dāng)圖片為黑白圖片時(shí),區(qū)別為:原始圖片的圖片數(shù)據(jù)對(duì)應(yīng)的像素矩陣中的元素 的位置與原始圖片中像素的位置一一對(duì)應(yīng),每個(gè)元素的值指示原始圖片中元素對(duì)應(yīng)位置的 像素的灰度值。<