Replicate Photoshop Multiplication Effects

How can I replicate Photoshop "Multiplication Effects" using the Image Magick library or obj-c for iphone? Where can I find example code? I also see this question

+3
source share
3 answers

If you need an easy way to do this, my GPUImage framework has its own GPUImageMultiplyBlendFilter, which takes two images and performs red, green, blue, and alpha channel multiplication for each pixel. It does this with GPU acceleration, so it can be 4-6X faster than performing the same operations with the processor.

To use this, set up two images for blending:

UIImage *inputImage1 = [UIImage imageNamed:@"image1.jpg"];    
GPUImagePicture *stillImageSource1 = [[GPUImagePicture alloc] initWithImage:inputImage1];

UIImage *inputImage2 = [UIImage imageNamed:@"image2.jpg"];    
GPUImagePicture *stillImageSource2 = [[GPUImagePicture alloc] initWithImage:inputImage2];

blend:

GPUImageMultiplyBlendFilter *blendFilter = [[GPUImageMultiplyBlendFilter alloc] init];
[inputImage1 processImage];
[inputImage1 addTarget:blendFilter];
[inputImage2 addTarget:blendFilter];
[inputImage2 processImage];

, , :

UIImage *filteredImage = [blendFilter imageFromCurrentlyProcessedOutput];

, , , iPad 2, , 2048x2048 . .

+8

- ( Adobe ) . - , , , . , , "".

, , .

, Magick. , , (, , 0 - 255), .

unsigned char result = a * b / 255;

, b , , . , 16 , .

+4

.

UIImage *inputImage1 = [UIImage imageNamed:@"image1.jpg"];
GPUImagePicture *stillImageSource1 = [[GPUImagePicture alloc] initWithImage:inputImage1];

UIImage *inputImage2 = [UIImage imageNamed:@"sample.jpg"];
GPUImagePicture *stillImageSource2 = [[GPUImagePicture alloc] initWithImage:inputImage2];

GPUImageMultiplyBlendFilter *blendFilter = [[GPUImageMultiplyBlendFilter alloc] init];
[stillImageSource1 processImage];
[stillImageSource1 addTarget:blendFilter];
[stillImageSource2 addTarget:blendFilter];
[stillImageSource2 processImage];

[blendFilter useNextFrameForImageCapture];

UIImage *filteredImage = [blendFilter imageFromCurrentFramebuffer];

[self.imageView setImage:filteredImage];
0

All Articles