我已經看到飽和度的實現代碼,我發現它非常好。但是我想用這種方式來實現色相。飽和的如何使用像素緩衝區在UIImage上應用色相?
碼 -
void filterSaturate(UInt8 *pixelBuf, UInt32 offset, void *context)
{
double t = *((double*)context);
int r = offset;
int g = offset+1;
int b = offset+2;
int red = pixelBuf[r];
int green = pixelBuf[g];
int blue = pixelBuf[b];
int avg = (red + green + blue)/3;
pixelBuf[r] = SAFECOLOR((avg + t * (red - avg)));
pixelBuf[g] = SAFECOLOR((avg + t * (green - avg)));
pixelBuf[b] = SAFECOLOR((avg + t * (blue - avg)));
}
我不確定在沒有首先選擇顏色的情況下應用色調轉換是否合理。然而,所有你需要做的就是將像素顏色轉換爲HSB(HSV),並且改變H. –