1. 程式人生 > >關於圖片轉化為NSDATA

關於圖片轉化為NSDATA

在融雲使用的過程中,遇到一個問題,就是設定預設頭像是,需要拿手機本地的圖片,於是搜尋了下,大致明白,就是先要把圖片轉換為nsdata,然後寫入沙盒檔案。

程式碼如下:

//本地存放地址

NSString *createPath = [NSString stringWithFormat:@"%@/[email protected]", FILEPATH];

        NSData *data;

        UIImage * image = [UIImage imageNamed:@"HeadMsg"];

        if (UIImagePNGRepresentation

(image) == nil) {

//第二個圖片是圖片的壓縮係數

            data = UIImageJPEGRepresentation(image, 1);

        } else {

            data = UIImagePNGRepresentation(image);

        }

        [data writeToFile:createPath atomically:YES];

        imgUrl = [NSString stringWithFormat:@"file://%@", createPath];


似乎png圖片和jpeg格式圖片大小也是存在很大區別的,網上查閱的資料,儲存下來

通過在實際使用過程中,比較發現: UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的圖片資料量大很多.

譬如,同樣是讀取攝像頭拍攝的同樣景色的照片, UIImagePNGRepresentation()返回的資料量大小為199K ,

而 UIImageJPEGRepresentation(UIImage* image, 1.0)返回的資料量大小隻為140KB,比前者少了50多KB.

如果對圖片的清晰度要求不高,還可以通過設定 UIImageJPEGRepresentation函式的第二個引數,大幅度降低圖片資料量.譬如,剛才拍攝的圖片, 通過呼叫UIImageJPEGRepresentation(UIImage* image, 1.0)

讀取資料時,返回的資料大小為140KB,但更改壓縮係數後,通過呼叫UIImageJPEGRepresentation(UIImage* image, 0.5)讀取資料時,返回的資料大小隻有11KB多,大大壓縮了圖片的資料量 ,而且從視角角度看,圖片的質量並沒有明顯的降低.因此,在讀取圖片資料內容時,建議優先使用UIImageJPEGRepresentation,並可根據自己的實際使用場景,設定壓縮係數,進一步降低圖片資料量大小.


相關推薦

關於圖片化為NSDATA

在融雲使用的過程中,遇到一個問題,就是設定預設頭像是,需要拿手機本地的圖片,於是搜尋了下,大致明白,就是先要把圖片轉換為nsdata,然後寫入沙盒檔案。 程式碼如下: //本地存放地址 NSS

matlab實現一次性實現多個文件夾圖片化為.mat文件

img mage 標簽 rgb end 參考 strcmp microsoft rcm %這裏是主函數:命名為readImg.m; clc;clear; %---read_image; filepath = ‘G:\人臉重建\data\src_all\‘;%圖片路徑可以根

【我要程式設計】Java技術手冊之根據圖片連結把圖片化為io流,並輸出到頁面上的方法

適用場景:A程式只能內網訪問,B程式可以外網訪問,只有B程式可以訪問A程式,使用者需要通過B程式訪問A程式的圖片資源。這是可以使用該方法。 @RequestMapping("/getImageByPath") public void getImageByTomcat(St

CAFFE之將圖片化為lmdb格式指令碼【直接執行版】(內含生成train.txt和test.txt)

標籤: caffe 深度學習 作者:賈金讓 一.指令碼實現的功能 1.將訓練資料集轉化為lmdb格式; 2.將測試資料集轉化為lmdb格式; 3.生成mean.binaryproto檔案。 二.原理簡述 對於使用caffe的人來說,預處

JavaScript——圖片化為base64編碼

var img = "imgurl";//imgurl 就是你的圖片路徑 function getBase64Image(img) { var canvas = document.createEl

java將圖片化為base64和base64轉化為圖片編碼並儲存在本地

直接上程式碼public class Base64Convert {    /**     * @Description: 圖片轉化成base64字串     * @param:    path     * @Return:     */    public static S

iOS開發之將字典NSDictionary化為NSData資料

NSDictionary *dic= @{@"name":@"zero",@"age":@(25)}; NSData *data= [NSJSONSerialization dataWithJSONO

將image圖片化為Base64字串

base64工具類:/** * Base64 工具類 */public class Base64Util {    private static final char last2byte = (char) Integer.parseInt("00000011", 2);   

caffe-將圖片化為siamese網路需要的資料庫格式

// This program converts a set of gray images to a leveldb by storing them // as Datum proto buffers. // Usage: // convert_imageset [FLAGS] ROOTFOLDER/ L

本地讀取圖片化為byte[]

public void read(){ String imagePath = "d:/lxp.bmp"; byte[] tmp = new byte[4096]; ByteArrayOutputStream buffer = new ByteArrayOutputSt

Android中圖片化為bitmap

圖片檔案轉為Bitmap物件 String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePath); 如果圖片過大,可能導致Bitmap物件裝不下圖片 解決辦法: String filePath="c:/01.jpg"; B

iOS開發gif圖片NSData

前幾天做專案,需求是從系統的相簿中選者gif格式的圖片上傳到伺服器,之後介面顯示相關的gif圖片 顯示這裡應該不是問題 網上好多顯示處理gif圖片的Demo可以參考,從相簿中選擇到是困擾了我。 經過四處搜尋 找到了解決辦法 同時感謝提供這個方法的大神,表示特別的感謝

C#將照片或圖片化為byte[]存入資料庫,從資料庫中讀照片

publicstaticbyte[] GetBytesByImagePath(string strFile) {byte[] photo_byte =null;using (FileStream fs =new FileStream(strFile, FileMode.Open, FileAcc

圖片NSDATA然後BASE64編碼POST到伺服器

//圖片轉換成data     NSData *imageData = UIImagePNGRepresentation(ima);     NSString *dataStr = [NSString stringWithFormat:@"%@", [imageData

php把網路圖片化為base64格式,解決html2canvas圖片跨域問題

一、前言       最近在用html2canvas做網頁截圖功能。這個開源庫使用很簡單,程式碼也很方便,但難點在於跨域問題。比如說,我的一個頁面中有圖片也有文字,圖片是來自於圖片伺服器的網路圖片。此時我們要生成截圖的話,需要有許可權來操作網路圖片,這就出現了

圖片資源化為Bitmap的多種方法

圖片資源轉化為Bitmap的多種方法,總有一款是你需要的 方法1: Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.mingchuseal, newOpts); 方法2:

Jav檔案壓縮-InputStream化為base64-Base64解碼並生成圖片

 Jav檔案壓縮-InputStream轉化為base64-Base64解碼並生成圖片   直接上原始碼,解釋見文章尾部 1 package com.hs.common.util.imgecode; 2 3 import com.hs.common.util.Lo

將CAD化為JPG圖片簡單的方法步驟

  想知道將CAD轉化為JPG圖片簡單的方法步驟今天就來詳情介紹給你們,相信對你們會有用處的,無需下載直接線上轉換,你們是不是聽完很心動呢?迫不及待的想知道究竟如何操作呢?來來來,學習CAD製圖的寶寶們可要認真看下去了這對你們的以後工作會帶來很多方便的,一起接著看下去吧!      CAD轉JPG h

關於nsdata的壓縮的問題base64,圖片字串,圖片的壓縮的問題

我的之前是大小不變直接是UIImageJPEGRepresentation(self.uploadImage , 1.0f); 然後改成UIImageJPEGRepresentation(self.uploadImage , 0.4);就行了,主要就是你的圖片壓縮成為頭

FFmpeg 視訊化為bmp圖片例項解析

本文中的函式詳細解析可參照:GO>> 我的部落格: FFmpeg部分函式解析 #include <libavcodec/avcodec.h> #include <li