Как бы я использовал графику Core только для создания фона текстуры шума? Я застрял на шумовой части, потому что нет возможности добавить фильтр шума в основную графику ...Гауссовский шум только с использованием основной графики?
ответ
Примерно год спустя, я нашел ответ:
CGImageRef CGGenerateNoiseImage(CGSize size, CGFloat factor) CF_RETURNS_RETAINED {
NSUInteger bits = fabs(size.width) * fabs(size.height);
char *rgba = (char *)malloc(bits);
srand(124);
for(int i = 0; i < bits; ++i)
rgba[i] = (rand() % 256) * factor;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef bitmapContext = CGBitmapContextCreate(rgba, fabs(size.width), fabs(size.height),
8, fabs(size.width), colorSpace, kCGImageAlphaNone);
CGImageRef image = CGBitmapContextCreateImage(bitmapContext);
CFRelease(bitmapContext);
CGColorSpaceRelease(colorSpace);
free(rgba);
return image;
}
Это эффективно формирует изображение с шумом, который гарантированно будет случайным, и можно сделать, используя код от ответа Джейсона Harwig в ,
Создайте шум png, затем нарисуйте его, используя накладную смесь.
// draw background
CGContextFillRect(context, ...)
// blend noise on top
CGContextSetBlendMode(context, kCGBlendModeOverlay);
CGImageRef cgImage = [UIImage imageNamed:@"noise"].CGImage;
CGContextDrawImage(context, rect, cgImage);
CGContextSetBlendMode(context, kCGBlendModeNormal);
Чистая Core Graphics Я хотел также нарисовать шум в Core Graphics ... Требование моего приложения заключается в том, что он не использует файлы png, к сожалению. –
Это странное требование. Я мог видеть независимость разрешения как причину, но просто использование двух разных png разрешений решит это. –
Тем не менее, это сработает ... Есть ли способ жестко кодировать UIImage как текстовые данные, которые я мог бы вернуть из пользовательского класса? EDIT: не смог ли я создать собственный класс-оболочку с кодировкой с кодировкой base64 изображения в формате Retina и написать несколько простых методов для возврата изображения в любом размере/формате? –
Существует CIRandomGenerator в CoreImageFilters с iOS 6. Но имейте в виду, что это не гауссовский шум (как это не в предыдущем ответе).
- (UIImage*)linearRandomImage:(CGRect)rect
{
CIContext *randomContext = [CIContext contextWithOptions:nil];
CIFilter *randomGenerator = [CIFilter filterWithName: @"CIColorMonochrome"];
[randomGenerator setValue:[[CIFilter filterWithName:@"CIRandomGenerator"] valueForKey:@"outputImage"] forKey:@"inputImage"];
[randomGenerator setDefaults];
CIImage *resultImage = [randomGenerator outputImage];
CGImageRef ref = [randomContext createCGImage:resultImage fromRect:rect];
UIImage *endImage=[UIImage imageWithCGImage:ref];
return endImage;
}
- 1. Удалить гауссовский шум с использованием фильтра2
- 2. Гауссовский шум, MATLAB
- 3. Octave/Matlab - гауссовский шум
- 4. Добавить гауссовский шум с C++
- 5. Как добавить шум Пуассона и гауссовский шум?
- 6. Добавить белый гауссовский шум MATLAB
- 7. аддитивный гауссовский шум в Tensorflow
- 8. добавляя белый гауссовский шум с помощью MATLAB
- 9. Как смоделировать фильтрованный гауссовский шум в Matlab?
- 10. Как добавить гауссовский шум к изображению?
- 11. Как реализовать двумерный нормальный гауссовский шум?
- 12. Аддитивный белый гауссовский шум Java в дБ
- 13. Как добавить белый гауссовский шум в сигнал
- 14. Как генерировать гауссовский шум в Java?
- 15. рисовать рельефную дугу с использованием основной графики
- 16. рисунок popOver с использованием основной графики
- 17. Как удалить гауссовский шум из изображения в MATLAB?
- 18. Как добавить гауссовский, соленый перец и шум для изображения 256X256 с использованием скользящего окна длиной 8X8
- 19. Улучшение производительности при рисовании с использованием основной графики
- 20. Рисовать с помощью основной графики только внутри круга
- 21. Как сделать пузырь мысли с использованием основной графики в iPhone
- 22. Как создать ландшафтный и портретный режимы с использованием основной графики?
- 23. Как рисовать эту дугу (изображение включено) с использованием основной графики?
- 24. Вывод в строке чертежа с использованием основной графики: отображаются пузыри
- 25. Кнопка основной графики. Наилучшая практика
- 26. Гистограмма и гауссовский фитинг
- 27. Клонирование только основной ветви с использованием PyGit2
- 28. Графики с использованием JQuery
- 29. Показаны гауссов шум
- 30. Как добавить и удалить шум из изображения
Обратите внимание, что изображение, возвращенное из этой функции, имеет счет сохранения +1 и должно быть выпущено с использованием CFRelease (изображения) после того, как вы закончите рисовать его. В противном случае он протекает. Кроме того, имя функции следует изменить, чтобы отразить это. Он должен содержать где-то «новое» или «создать». – Bryan
Спасибо! Исправлено с 'CF_RETURNS_RETAINED'. –