第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何獲取iphone上圖像上像素的RGB值

如何獲取iphone上圖像上像素的RGB值

慕尼黑5688855 2019-07-29 16:16:18
如何獲取iphone上圖像上像素的RGB值我正在編寫一個(gè)iPhone應(yīng)用程序,并且需要在photoshop中實(shí)現(xiàn)與“eyedropper”工具相當(dāng)?shù)臇|西,在那里你可以觸摸圖像上的一個(gè)點(diǎn)并捕獲相關(guān)像素的RGB值,以確定和匹配它的顏色。獲取UIImage是一個(gè)簡單的部分,但有沒有辦法將UIImage數(shù)據(jù)轉(zhuǎn)換為位圖表示,我可以在其中提取給定像素的信息?一個(gè)工作代碼示例將是最受歡迎的,并注意我不關(guān)心alpha值。
查看完整描述

3 回答

?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

這是我對UIImage采樣顏色的解決方案。

此方法將請求的像素渲染為1px大型RGBA緩沖區(qū),并將生成的顏色值作為UIColor對象返回。這比我見過的大多數(shù)其他方法快得多,并且只使用很少的內(nèi)存。

對于像顏色選擇器這樣的東西,它應(yīng)該可以很好地工作,在任何給定的時(shí)間你通常只需要一個(gè)特定像素的值。

的UIImage + Picker.h

#import <UIKit/UIKit.h>@interface UIImage (Picker)- (UIColor *)colorAtPosition:(CGPoint)position;@end

的UIImage + Picker.m

#import "UIImage+Picker.h"@implementation UIImage (Picker)- (UIColor *)colorAtPosition:(CGPoint)position {

    CGRect sourceRect = CGRectMake(position.x, position.y, 1.f, 1.f);
    CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, sourceRect);

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    unsigned char *buffer = malloc(4);
    CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big;
    CGContextRef context = CGBitmapContextCreate(buffer, 1, 1, 8, 4, colorSpace, bitmapInfo);
    CGColorSpaceRelease(colorSpace);
    CGContextDrawImage(context, CGRectMake(0.f, 0.f, 1.f, 1.f), imageRef);
    CGImageRelease(imageRef);
    CGContextRelease(context);

    CGFloat r = buffer[0] / 255.f;
    CGFloat g = buffer[1] / 255.f;
    CGFloat b = buffer[2] / 255.f;
    CGFloat a = buffer[3] / 255.f;

    free(buffer);

    return [UIColor colorWithRed:r green:g blue:b alpha:a];}@end


查看完整回答
反對 回復(fù) 2019-07-29
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

您無法直接訪問UIImage的位圖數(shù)據(jù)。

您需要獲取UIImage的CGImage表示。然后從位圖的CFData表示中獲取CGImage的數(shù)據(jù)提供程序。確保在完成后釋放CFData。

CGImageRef cgImage = [image CGImage];CGDataProviderRef provider = CGImageGetDataProvider(cgImage);CFDataRef bitmapData = CGDataProviderCopyData(provider);

您可能希望查看CGImage的位圖信息以獲取像素順序,圖像尺寸等。


查看完整回答
反對 回復(fù) 2019-07-29
  • 3 回答
  • 0 關(guān)注
  • 1120 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號