问题描述
- JAVA算法实现图片透明化渐变
-
关于实现图像黑白的颜色渐变可以实现。用每行的红绿蓝都逐渐减少就能实现。
但是上面要求提供一个算法把传进来的图片覆盖一层从透明黑色的阴影逐渐变成透明的效果。
求指导~~
要是能把源码发来就跟好了~~
解决方案
源代码肯定是没有的,需要你自己实现。
图片,是什么格式的呢?BMP,还是 PNG?
要处理图片,你首先要能读到图片未处理前的每像素的数值吧,如果能读到,做黑白渐变只是简单的修改读到的 RGB 的数值。
透明黑色的阴影,如果是 PNG 格式,则可以通过 Alpha 通道来实现;但如果是 BMP,但需要研究一下处理的算法。处理的方法还是修改 RGB 的数值,但不同的原始 RGB 值加多少/减多少才能变成新的透明效果的 RGB 需要动态的算法。
可以考虑先将一 BMP 做成透明效果的 BMP,再对比两张 BMP 图像的 RGB数值来得到对应的算法 。
解决方案二:
试试这个
import java.applet.*;
import java.awt.*;
public class AlphaDemo extends Applet {
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
Image im = getImage(getCodeBase(), "1.jpg");
for (float i = 0.0f; i<=1.0f; i += 0.01f) {
g2.drawImage(im, 0, 0, this);
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
i));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
解决方案三:
这个写的不错的:::
http://blog.itpub.net/12379366/viewspace-220439/
解决方案四:
这个叫alpha混合
google java picture alpha blend
就能找到你要的代码。