मैं यूआईएममेज पर गॉसियन ब्लर करने की कोशिश कर रहा हूं जो मेरे फ़ोटोशॉप मैक अप को दोहराता है।सीमाओं के बाहर ब्लर यूआईएममेज (फ़ोटोशॉप-स्टाइल)
वांछित व्यवहार: फ़ोटोशॉप में, जब मैं एक गाऊसी कलंक फिल्टर चलाने के लिए, छवि परत धुंधला किनारों का एक परिणाम के रूप में बड़ा हो जाता है।
पर्यवेक्षित व्यवहार: GPUImage का उपयोग करके, मैं सफलतापूर्वक अपने UIImages को धुंधला कर सकता हूं। हालांकि, नई छवि मूल सीमाओं पर फसल की जाती है, जिससे चारों ओर एक कठिन किनारा निकलता है।
UIImageView.layer.masksToBounds = NO;
सेट करने में मदद नहीं करता है, क्योंकि छवि दृश्य नहीं है।
मैंने धुंधला होने से पहले एक बड़ी स्पष्ट छवि पर केंद्रित UIImage को रखने का प्रयास किया है, और फिर आकार बदल रहा है। यह भी मदद नहीं की।
क्या इस "फ़ोटोशॉप-शैली" धुंध को हासिल करने का कोई तरीका है?
अद्यतन कार्य समाधान ब्रैड लार्सन को धन्यवाद:
UIImage sourceImage = ...
GPUImagePicture *imageSource = [[GPUImagePicture alloc] initWithImage:sourceImage];
GPUImageTransformFilter *transformFilter = [GPUImageTransformFilter new];
GPUImageFastBlurFilter *blurFilter = [GPUImageFastBlurFilter new];
//Force processing at scale factor 1.4 and affine scale with scale factor 1/1.4 = 0.7
[transformFilter forceProcessingAtSize:CGSizeMake(SOURCE_WIDTH * 1.4, SOURCE_WIDTH * 1.4)];
[transformFilter setAffineTransform:CGAffineTransformMakeScale(0.7, 0.7)];
//Setup desired blur filter
[blurFilter setBlurSize:3.0f];
[blurFilter setBlurPasses:20];
//Chain Image->Transform->Blur->Output
[imageSource addTarget:transformFilter];
[transformFilter addTarget:blurFilter];
[imageSource processImage];
UIImage *blurredImage = [blurFilter imageFromCurrentlyProcessedOutputWithOrientation:UIImageOrientationUp];
जब आपने "धुंधला होने से पहले एक बड़ी स्पष्ट छवि पर केंद्रित यूआईएममेज को रखने का प्रयास किया", तो क्या आपका मतलब है कि आपने मूल छवि को एक बड़े UIImage में विलय कर दिया है, तो यह एक छवि है? यदि ऐसा है, तो स्पष्ट छवि के बजाय एक सफेद छवि का उपयोग करने का प्रयास करें, और सुनिश्चित करें कि सफेद छवि में अल्फा चैनल है। मुझे संदेह है कि स्पष्ट छवि में कोई अल्फा नहीं है, और इस प्रकार परिणाम फिसल जाता है। – bobnoble