Как редактировать альфа пикселей в CGImage - PullRequest
0 голосов
/ 11 декабря 2011

Я хочу взять CGImage, перебрать пиксели и изменить их альфа-значения.

Я видел код, который изменяет значения RGB пикселей, как этот поток Программно инвертирует цветавозможно ли изображение? Показывает, как инвертировать значения RGB пикселей.

Но я хочу изменить значения альфа.

Есть ли способ сделать это ??

Ответы [ 2 ]

1 голос
/ 11 декабря 2011

Вы можете использовать код из палитры цветов для получения RGBA-матрицы изображения и изменения альфа.И сохранить изображение обратно.

https://github.com/sakrist/VBColorPicker/blob/master/VBColorPicker/VBColorPicker.m

unsigned char* data = CGBitmapContextGetData (cgctx);
if (data != NULL && data != 0) {
    //offset locates the pixel in the data from x,y. 
    //4 for 4 bytes of data per pixel, w is width of one row of data.
    int offset = 4*((w*round(point.y))+round(point.x));
    int alpha =  data[offset]; 
    int red = data[offset+1]; 
    int green = data[offset+2]; 
    int blue = data[offset+3]; 
    NSLog(@"offset: %i colors: RGB A %i %i %i  %i",offset,red,green,blue,alpha);
    color = [UIColor colorWithRed:(red/255.0f) green:(green/255.0f) blue:(blue/255.0f) alpha:(alpha/255.0f)];
}
0 голосов
/ 11 декабря 2011

Изображения могут иметь или не иметь доступные для приложения пиксели или пиксели известного размера.Однако вы можете отобразить изображение на растровое изображение, которое вы создали.Если это растровое изображение RGBA (или ABGR), то вы можете изменить альфа-канал любого пикселя так же, как вы можете изменить значение RGB.Ваше приложение может создать новое изображение из этого измененного растрового изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...