我該如何複製Photoshop的「Multiply特效」與圖像Magick庫或iPhone的obj-c代碼? 我在哪裏可以找到這樣的一些示例代碼? 我也看到這question複製Photoshop「Multiply特效」
3
A
回答
4
乘法是一個(Adobe稱爲)混合模式。混合模式本質上是使用一些數學公式的像素操作。你可以將兩個圖像混合在一起,或者你可以使用一個,從而產生「自我混合」。
這可以通過對像素逐像素進行操作,獲取特定像素的每個通道值並對其進行處理來實現。
不幸的是,我不熟悉Magick庫。但是,這是一個給定通道值(紅色,綠色或藍色,0 - 255)將返回乘法運算結果值的公式。
unsigned char result = a * b/255;
注意這裏,A和B也必須是無符號的字符,則可能會出現其他的溢出,因爲結果會比一個字節大。這是基本的乘法公式,您可以通過分配更大的變量大小並適當修改除數來調整變量以支持每通道16位。
8
如果你想要一個簡單的方法來做到這一點,我GPUImage框架有其GPUImageMultiplyBlendFilter,它有兩個圖像,並進行紅,綠,藍,alpha通道,由通道倍增每個像素。它是以GPU加速的方式實現的,因此它可以比在CPU上執行相同的操作快4-6倍。
要使用此功能,設置你的兩個圖像融合:
UIImage *inputImage1 = [UIImage imageNamed:@"image1.jpg"];
GPUImagePicture *stillImageSource1 = [[GPUImagePicture alloc] initWithImage:inputImage1];
UIImage *inputImage2 = [UIImage imageNamed:@"image2.jpg"];
GPUImagePicture *stillImageSource2 = [[GPUImagePicture alloc] initWithImage:inputImage2];
然後創建和配置混合濾波器:
GPUImageMultiplyBlendFilter *blendFilter = [[GPUImageMultiplyBlendFilter alloc] init];
[inputImage1 processImage];
[inputImage1 addTarget:blendFilter];
[inputImage2 addTarget:blendFilter];
[inputImage2 processImage];
,最後提取混合後的圖像結果:
UIImage *filteredImage = [blendFilter imageFromCurrentlyProcessedOutput];
在目前的實施中有一點需要注意的是,比iPad 2更老的設備有限制提高了紋理尺寸,因此現在無法在這些較舊的設備上處理大於2048x2048的圖像。我正在解決這個問題。
0
重複使用Brad Larson代碼,對我來說工作得很好。
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];
相關問題
- 1. JSX複製圖層adobe photoshop
- 2. 的CSS的Photoshop文字特效
- 3. 如何製作Photoshop筆畫效果?
- 4. Photoshop吸管自動複製顏色
- 5. 在Flash中複製Photoshop調整圖層
- 6. 如何修復警告「label`` multiply defined」
- 7. 高效複製/複製樹
- 8. Apache Multiply Sites again
- 9. CoreAnimation +效果與Photoshop + UIImageView
- 10. 表情融合photoshop效果
- 11. iPhone - 類似效果的Photoshop
- 12. Javascript Infinity add and multiply
- 13. Codewars - Swift Solution(Multiply Function)
- 14. proc summary with statistic「multiply」
- 15. multiply servlets會話cookie
- 16. STL複製效率
- 17. 如何用python在photoshop中製作影印效果
- 18. 複製特定列
- 19. Photoshop圖層問題/製作特定圖層更大
- 20. map/multiply values to logical vector
- 21. Numpy multiply array into matrix(outer product)
- 22. 在photoshop上識別文字效果
- 23. 作爲在Photoshop中的溢出效果
- 24. GPUImage glsl正弦波photoshop效果
- 25. Photoshop JSX - 如何將任意文本複製到剪貼板?
- 26. Photoshop:通過SDK獲取切片並複製內容
- 27. 複製Photoshop文檔的當前「視圖」而不必平鋪?
- 28. 在ImageMagick中複製Photoshop的「顏色」混合模式
- 29. 如何將Photoshop濾鏡和動作複製到MATLAB?
- 30. 使用批處理文件將文件複製到photoshop目錄
Brad Larson很好的答案! :)但你也可以使用圖庫應用色調? – janusbalatbat 2012-05-17 05:00:32
@janusfidel - 有幾種不同的方法可以改變圖像的顏色內容,從調整曝光度,增益或亮度到移動其中一個顏色分量的值並應用顏色矩陣。在一種情況下使用後者來對圖像執行棕褐色調。除此之外,使用少量類C代碼編寫新的過濾器很容易就可以實現所需的效果。 – 2012-05-17 14:48:52
@布拉德拉森謝謝先生。這幫助了很多。 – janusbalatbat 2012-05-18 07:57:26