-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
手機(jī)怎么把照片改小于200kb(手機(jī)怎么把照片改小于30kb)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于手機(jī)怎么把照片改小于200kb的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、手機(jī)圖片縮小到200kb怎么做?
由于手機(jī)的像素普遍較大,所以單靠手機(jī)的照相功能是無法把相片縮小到200KB以下,可以把照片發(fā)送至電腦,使用電腦PS把相片縮小到200KB以下,下面給出具體操作步驟:
所需材料:PS。
1、首先,首先是用微信、QQ、網(wǎng)盤等方法將這張照片傳輸?shù)缴厦娴碾娔X上。
2、然后使用Photoshop打開照片。
3、按Ctrl+Alt+I(xiàn)打開圖像大小窗口,勾選“約束比例”和“重置圖像像素”兩個選項,降低高度、寬度和分辨率,點擊“確定”。
4、按Ctrl+Alt+S打開保存窗口,選擇JPEG格式,單擊“保存”。
5、最后,在JPEG選項中,通過調(diào)整圖片的質(zhì)量來進(jìn)一步縮小照片的大?。憧梢栽谟疫吙吹轿募笮〉念A(yù)覽)。當(dāng)小于200KB時,點擊“OK”。
二、手機(jī)怎么改照片大小200kb
在手機(jī)上壓縮圖片的大小,具體的操作如下:
1、打開手機(jī)上的瀏覽器,在搜索框中輸入圖片壓縮,點擊下載一個在線網(wǎng)站,進(jìn)入網(wǎng)站首頁。
2、在網(wǎng)站首頁的右上方會出現(xiàn)菜單的符號,點擊后得到導(dǎo)航列表,在列表中找到文檔處理并點擊,就會看到“圖片壓縮”,點擊圖片壓縮進(jìn)入到壓縮的頁面。
3、進(jìn)入圖片壓縮主頁面后,點擊上方藍(lán)色框的“點擊選擇文件”,選擇需要進(jìn)行壓縮的圖片文件。
4、在頁面上可以看到壓縮的選項以及輸出的格式,在壓縮類型選項下有“縮小優(yōu)先”,點擊勾選。
5、點擊下方藍(lán)框的“開始壓縮”,需要進(jìn)行壓縮的圖片文件就會在壓縮的過程中。
三、怎么把手機(jī)圖片壓縮到200k
背景
在手機(jī)上用戶隨手拍一張衣服的照片,去找類似圖片的需求比較明顯,以圖搜圖項目目的就是滿足用戶的這部分需求。
該項目初步預(yù)計5個類目,每個類目500萬圖片用于檢索。經(jīng)過特征提取,每張圖片可以表示為30976維空間中的一個點,即可以用30976個float值表示,為了便于處理,我們將特征值乘以100000,在不損失float值精度的情況下,用int32_t存儲圖片特征。
圖片檢索時需要計算query 圖片和索引圖片的歐式距離,圖片之間計算歐式距離的耗時為50微秒,經(jīng)過cpu指令集優(yōu)化(sse),歐式距離計算耗時減少到13微秒。
在壓縮之前,所有圖片的大小為 3T( 4 * 30k * 25000000),每臺機(jī)器30G內(nèi)存用于存儲圖片,需要100臺機(jī)器存儲全量圖片。
需要在計算歐式距離效率不降低的情況下,對圖片進(jìn)行壓縮,大規(guī)模減少機(jī)器的占用。
我們的目標(biāo)是壓縮到500G左右,即壓縮之后每張圖片20k左右,歐式距離計算耗時為15微秒左右。
歐式距離計算要求耗時在微秒級別,已有的壓縮方法,比如p4delta、valgrind壓縮等在性能上不滿足要求,需要我們根據(jù)數(shù)據(jù)特點自己定制壓縮方法。
成果
目前的壓縮方法單張圖片由120k 壓縮到了平均13k。
歐式距離計算平均耗時為9微秒。
這么靠譜的成果是如何做到的呢?
初步嘗試
bitmap的方法
觀察數(shù)據(jù)特點,發(fā)現(xiàn)平均每張圖片有7000個數(shù)為非0值,其他值都為 0。首先想到的是用bitmap表示30976個值在特定的位置是否是0。bitmap需要30976 / 8= 4k個字節(jié)。然后只存儲非0值,需要7k * 4,壓縮之后平均每張圖片大小為32k。壓縮代碼大體如下:
int bitmap_len = size / 8 + 8;
uint64_t *bitmap = (uint64_t*)(cmpr_buf);
int32_t *data = (int32_t*)(cmpr_buf + bitmap_len);
for(unsigned int i=0;i<size;i++) {
if(list[i] != 0) {
data[index++] = list[i];
bitmap[i/64] |= bit_mask_tab[i % 64];
}
}
但是在計算圖片之間的歐式距離時,需要遍歷30976次bitmap,并判斷特定位的值知否為0,即將bitmap和掩碼數(shù)組進(jìn)行與操作,比較耗時,計算耗時在100微秒以上。計算兩個壓縮圖片的歐式距離代碼:
for(i=0; i<size/64; i++) { for(int j=0; j<64; j++) { a = 0; b = 0; if((bitmap1[i] & bit_mask_tab[j])) { a = data1[index1++]; } if((bitmap2[i] & bit_mask_tab[j])) { b = data2[index2++]; } olength += (a - b) * (a - b); } }
采用offset的壓縮方式
我們只保存非0數(shù)據(jù)的off_set和value,off_set最大值30975,需要用int16_t來保存,value的范圍0~100萬,需要int32_t來表示,采用該方法的話,每個圖片占用空間為42k (7k * (2 + 4))。
for(int i=0; i<size; i++) {
if(list[i] != 0) {
index++;
}
}
*(int16_t*) cmpr_buf = index;
int16_t *p_off = (int16_t*)cmpr_buf + 1;
int32_t *p_data = (int32_t*)(((char *)cmpr_buf) + sizeof(int16_t) * index + sizeof(int16_t));
index = 0;
for(int i=0; i<size; i++) {
if(list[i] != 0) {
p_off[index] = i;
p_data[index] = list[i];
index++;
}
}
計算兩個壓縮圖片的歐式距離的時候,采用按照off_set歸并的方法:
while(p_data1<end1 && p_data2 < end2){
if(*p_off1 < *p_off2) {
olength += *p_data1 * *p_data1;
p_data1++;
p_off1++;
} else if(*p_off1 > *p_off2) {
olength += *p_data2 * *p_data2;
p_data2++;
p_off2++;
} else {
olength += (*p_data1 - *p_data2) * (*p_data1 - *p_data2);
p_data1++;
p_data2++;
p_off1++;
p_off2++;
}
}
該方法進(jìn)行歐式距離的耗時為55微秒,我們認(rèn)為是if 條件比較耗時,于是嘗試了用位掩碼替代if的方式:
while(p_data1 < end1 && p_data2<end2) {
a = ((*p_off1 - *p_off2) <= 0);
b = ((*p_off2 - *p_off1) <= 0);
tmp1 = -a & *p_data1;
tmp2 = -b & *p_data2;
p_off1 += a;
p_off2 += b;
p_data1 += a;
p_data2 += b;
tmp = tmp1 - tmp2;
olength += tmp * tmp;
}
該方式消除了if 條件判斷,但是耗時為70微秒,性能反而下降了,耗時的原因是cpu的指令增多了。
性能優(yōu)化
場景分析
兩個壓縮圖片計算 --> 一個壓縮一個非壓縮
目前的優(yōu)化進(jìn)入了一個瓶頸,如何才能提升性能到10微秒級別呢?我們回過頭來重新考慮了一下應(yīng)用場景,在線的場景是query圖片和一系列圖片計算距離,離線的場景是中心點圖片和其他一系列圖片計算距離也就是說都是一個圖片和多個圖片進(jìn)行距離計算,這時一個圖片不需要進(jìn)行壓縮,完全可以是非壓縮的,即使該圖片是壓縮也可以先解壓計算歐式距離實際上可以轉(zhuǎn)化為一個非壓縮圖片和多個壓縮圖片計算歐式距離。對這樣的情況,我們需要重新考慮提升效率的問題。
確定采用off_set壓縮方式
對于計算一個壓縮和一個非壓縮圖片歐式距離的問題,比較bitmap的壓縮方式和off_set的壓縮方式,off_set的壓縮方式有明顯的優(yōu)勢對于bitmap方式,最耗時的地方仍然是訪問30976次bitmap,然后做與操作,來獲取解壓后的值,遍歷30976次bitmap耗時,至少50微秒以上但是off_set的方式保存了7000個非0數(shù)據(jù)的off_set,我們只需要遍歷7000次非0 數(shù)組就可以計算出歐式距離。
一個壓縮一個非壓縮
做法
首先計算好非壓縮圖片的累加平方和,每次查詢計算多次歐式距離,只計算一次累加平方和。
遍歷壓縮圖片數(shù)組,計算該值和另一張非壓縮圖片的對應(yīng)off_set的差值的平方。
對于壓縮圖片的為0的那些值來說,歐式距離只需要加上非壓縮圖片那些值的平方和。
舉例:
a.非壓縮圖片:[0 2 3 0 4 0 0 5 6 0 0] ,壓縮圖片:[0 0 0 6 6 6 0 0 ]
b.事先計算好非壓縮圖片的特定位之前的所有值的平方和:sqrt[0 4 13 13 29 29 29 54 90 90 90]
c.壓縮的數(shù)組為 off[3 4 5], data[6 6 6 ]
d.遍歷off和data數(shù)組
olength += (6 - 0) * (6 - 0) olength += (sqrt[2] - sqrt[0])
olength += (6 - 4) * (6 - 4)olength += (sqrt[3] - sqrt[3])
olength += (6 - 0) * (6 - 0) olength += (sqrt[4] - sqrt[4])
效率:20微秒
該方法只需要遍歷7000次數(shù)組, 進(jìn)行7000次相減 平方操作和 7000次訪問sqrt 數(shù)組操作,大大簡化了復(fù)雜度。
代碼如下:
data1為壓縮數(shù)據(jù),data2為非壓縮數(shù)據(jù):
for(int i=0; i<num; i++) {
olength += (data1[i] - data2[off1[i]]) * (data1[i] - data2[off1[i]]);
olength += sqrt[off[i] - 1] - sqrt[off[i-1]];
}
四、oppo手機(jī)怎樣讓照片小于200kb
用電腦上的ps會更簡單。
手機(jī)可以進(jìn)行裁剪,如果不裁剪,也可以這樣:
相冊中打開照片,2指靠近縮小圖片,保持手指不動,進(jìn)行截圖,截圖后將黑邊裁剪掉,這樣圖片就會小很多了。
以上就是關(guān)于手機(jī)怎么把照片改小于200kb相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
手機(jī)理財軟件排行榜(手機(jī)理財軟件排行榜最新)
手機(jī)上怎么換字體(oppo手機(jī)上怎么換字體樣式)
室內(nèi)設(shè)計好就業(yè)嗎(女生學(xué)室內(nèi)設(shè)計好就業(yè)嗎)
常州居泰隆裝飾有限公司(常州居泰隆裝飾有限公司武進(jìn)區(qū))
問大家
太倉優(yōu)秀的企業(yè)郵箱負(fù)責(zé)人手機(jī)號多少?諸位大哥們問一下哈
吳江稱心的企業(yè)郵箱機(jī)構(gòu)手機(jī)號怎么找?路過的盆友們在線等
清遠(yuǎn)值得選擇的公眾號設(shè)計制作負(fù)責(zé)人手機(jī)號有么?各位老表們幫個忙
城中值得信任的專題片企業(yè)形象片拍攝制作負(fù)責(zé)人手機(jī)號有么?諸位老司機(jī)們幫個忙
肇慶人性化的公眾號設(shè)計制作機(jī)構(gòu)手機(jī)號有么?諸位筒子們幫回復(fù)下
張家口專業(yè)制作好用的高速服務(wù)區(qū)廣告牌制作官方手機(jī)號有么?各位老師們有誰了解
衡水專業(yè)制作杰出的站牌廣告機(jī)構(gòu)手機(jī)號有么?各位大俠們給個建議
保定專業(yè)制作專業(yè)的高速服務(wù)區(qū)鏡面機(jī)構(gòu)手機(jī)號有么?路過的大神們急急急
湟中很強(qiáng)大的MV視頻直播拍攝制作機(jī)構(gòu)手機(jī)號有么?各位同志們幫忙回一下
上海特色的小程序開發(fā)商家手機(jī)號多少?路過的大哥大姐們跪求回答
濟(jì)南高端大齡男女相親交友平臺哪個更正規(guī)些?行業(yè)口碑好?