1. 程式人生 > >uiimage 轉換為畫素資料 以及從畫素資料生成為uiimage

uiimage 轉換為畫素資料 以及從畫素資料生成為uiimage

http://www.cnspirit.com/2011/04/uiimage-uiimage.html

生成RGBABitmapContext 

 CGContextRef CreateRGBABitmapContext (CGImageRef inImage){ 
CGContextRef context = NULL; CGColorSpaceRef colorSpace;
void *bitmapData;
int bitmapByteCount;
int bitmapBytesPerRow;
size_t pixelsWide = CGImageGetWidth(inImage);
size_t pixelsHigh = CGImageGetHeight(inImage);
bitmapBytesPerRow = (pixelsWide * 4);
bitmapByteCount = (bitmapBytesPerRow * pixelsHigh);
colorSpace = CGColorSpaceCreateDeviceRGB();  if (colorSpace == NULL){
fprintf(stderr, "Error allocating color space");
return NULL;
}

// allocate the bitmap & create context
bitmapData = malloc( bitmapByteCount );
if (bitmapData == NULL){
printf (stderr, "Memory not allocated!");
CGColorSpaceRelease( colorSpace );
return NULL;
}

context = CGBitmapContextCreate (bitmapData,
pixelsWide,
pixelsHigh,
8,
bitmapBytesPerRow,
colorSpace,
kCGImageAlphaPremultipliedLast);

if (context == NULL){
    free (bitmapData);
    fprintf (stderr, "Context not created!");
 }

CGColorSpaceRelease( colorSpace );

 return context;

生成圖片的畫素資料

 // Return Image Pixel data as an RGBA bitmap
unsigned char *RequestImagePixelData(UIImage *inImage) {

CGImageRef img = [inImage CGImage];
CGSize size = [inImage size];
CGContextRef cgctx = CreateRGBABitmapContext(img); 
if (cgctx == NULL)
return NULL;

CGRect rect = {{0,0},{size.width, size.height}};
CGContextDrawImage(cgctx, rect, img);
unsigned char *data = CGBitmapContextGetData (cgctx);
CGContextRelease(cgctx);
return data;

相關推薦

uiimage 轉換資料 以及資料成為uiimage

http://www.cnspirit.com/2011/04/uiimage-uiimage.html 生成RGBABitmapContext   CGContextRef CreateRGBABitmapContext (CGImageRef inImage){ 

mysql安裝,以及csv插入資料

1.mysql安裝     用管理員身份開啟cmd命令列工具,cd到解壓檔案的bin目錄:    ・MySql的Windows服務安裝: mysqld install 回車  ・生成無密碼的root使用者: mysqld --initialize-insecure 

重要經驗八---UIImage轉換CVPixelBufferRef

照片時間,是我個人開發的一款顯示照片拍攝時間的應用,實用、免費、體積小。 http://itunes.apple.com/app/id571238224 最近做一個視訊處理的專案(Rokk!),需要將opengl渲染後的特效儲存為視訊,由於使用了第三方庫,所以不能直接使用opengl的

小程式伺服器獲取資料以及帶參傳資料 php

此前沒有摸索過小程式,原本打算看視訊教學慢慢走的,發現老師講的基本都是文件,於是乾脆直接實踐。 要實現這樣一個排行 官方文件上的東西我就不照搬了 var that = this; wx.request({ //請求介面的地址

list轉換JsonArray時,使用JsonValueProcessor處理有關資料型別

使用JSONArray jsonarray = JSONArray.fromObject(list);可以輕鬆將list轉換為array,但是當list中含有data型別的資料的時候,就會轉換不正確,

xml應用以及資料庫讀出資料形成XML,XML的查詢,xpath

1.配置檔案,如QQ的配置檔案,在java中使用的非常多 2.資料傳輸 比如webserivice 網站開放的AP,如土豆網的視訊資訊I 3.小型資料庫 通過mysql_fetch_assoc函式 while($row = mysq_fetch_assoc($rs)){

Spark將資料寫入Hbase以及Hbase讀取資料

本文將介紹 1、spark如何利用saveAsHadoopDataset和saveAsNewAPIHadoopDataset將RDD寫入hbase 2、spark從hbase中讀取資料並轉化為RDD 操作方式為在eclipse本地執行spark連線到遠端的hbase。 ja

如何將32 x 32圖示轉換16 x 16值的圖示

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

JAVA Enum指定值的應用(資料轉換Enum)

enum ACTION{ ac_Entry(10),ac_View(2),ac_Approve(5); private int _val; private static final Map<Integer,ACTION> keyMap=new HashMap<Int

使用matplotlib.pyplot所圖片的二進位制流獲取方法以及如何將它轉換圖片array(附程式碼)

【時間】2018.11.13 【題目】使用matplotlib.pyplot所畫圖片的二進位制流獲取方法以及如何將它轉換為圖片array(附程式碼) 概述 在python中,可以通過matplotlib.pyplot進行畫圖並可以使用plt.savefig(save_path, dpi=

Pandas DataFrame將多列資料一次性object轉換datetime

從CSV檔案中讀取資料後,很多日期型別資料為object。為了批量將這幾列轉換為datetime。怎麼做呢? 一、找出df的列名中有“date”日期的列 datel=[] for x in df.columns.tolist(): if 'date' in x: d

如何將一個shape(10000,3072)的陣列(32x32)轉換相應的圖片

10000行代表有10000張圖片,每一行有3072個數據,可以理解為32X32X3代表了畫素為32X32的RGB三通道彩色圖片 例如,現在要取第2張圖片  image是一個(10000,3072)的陣列 image[i]取出第i行,然後分別取出RGB的三個1024

Raw資料讀取以及轉換Mat

Raw資料介紹:RAW的原意就是“未經加工”。可以理解為:RAW影象就是CMOS或者CCD影象感應器將捕捉到的光源訊號轉化為數字訊號的原始資料。RAW檔案是一種記錄了數碼相機感測器的原始資訊,同時記錄了由相機拍攝所產生的一些元資料(Metadata,如ISO的設定、快門速度、

有符號整數、無符號整數的轉換以及資料轉換資料

1.有符號轉換為無符號的整數的規則: unsigned int MySystem::T2U(int x) { if (x >= 0) { return x; } return UIN

android 毫米(mm)轉換(px)

/** * Converts an unpacked complex data value holding a dimension to its final floating * point value. The two parameters <v

error C2440: “static_cast”: 無法“LRESULT (__thiscall CTextProgressCtrl::* )(UINT,LPCTSTR)”轉換“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)

目標 div line rdquo ria 升級 ret error lpctstr 轉自原文 error C2440 “static_cast” 無法從“void (__thiscall C* )(void)...

python列表中的所有值轉換字符串,以及列表拼接成一個字符串

bsp nbsp python class pan code blog 字符 for >>> ls1 = [‘a‘, 1, ‘b‘, 2] >>> ls2 = [str(i) for i in ls1] >>> ls2

MFC 手動選擇文件夾並將文件夾地址CString轉換char[]數組

col end ref sizeof omid itemid pid flag span 1 BROWSEINFO bi; 2 ZeroMemory(&bi, sizeof(BROWSEINFO)); 3 bi.hwndOwner =

不能將參數1“constchar[11]”轉換“LPCWSTR”

exp inf pyo shuf targe hex left str href 吭尾M浦疑口28狽y蹲2晃http://www.docin.com/vqge481 5乖樸評了1F0Z3FVhttp://shequ.docin.com/hru948 hu4PX馗派51費

error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 無法將參數 1 “const char [9]”轉換“LPCTSTR”

報錯 連接失敗 更新 vs2015 轉換 nbsp b-s ons code error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 無法將參數 1 從“const char [9]”轉換為“LPCTSTR”