如何解决如何使用GPUImage
我如何使用GPUImage,是否有一个网站可以解释我如何使用其所有功能?
我看了看互联网上的一些站点,只发现了几行代码。 如何使用我想要的所有功能?
解决方法
要应用您评论中提到的过滤器,我编写了以下示例应用程序:
首先,您需要创建一个GPUImageFilterGroup
才能应用所有混合的过滤器:
public static GPUImageFilterGroup setAdjustment(int HueOpacity,float SaturationOpacity,int ShadowOpacity,float WarmOpacity) {
GPUImageFilterGroup filterGroup = new GPUImageFilterGroup();
filterGroup.addFilter(new GPUImageHueFilter(range(HueOpacity,0.0f,360.0f)));
filterGroup.addFilter(new GPUImageHighlightShadowFilter(range(ShadowOpacity,1.0f),range(0,1.0f,0.0f)));
filterGroup.addFilter(new GPUImageWhiteBalanceFilter(range((int) WarmOpacity,4000.0f,8000.0f),range((int) SaturationOpacity,-2.0f)));
return filterGroup;
}
protected static float range(int percentage,float start,float end) {
return (((end - start) * ((float) percentage)) / 100.0f) + start;
}
要将这些过滤器应用于您的GPUImageView
:
private GPUImageView mainImageView;
//The default values
private float SaturationOpacity = 50.0f;
private float WarmOpacity = 50.0f;
private int ShadowOpacity = 0;
private int HueOpacity = 0;
mainImageView.setImage(YOUR BITMAP HERE);
为色相,阴影和白色平衡创建3个SeekBars
:
色调:
seekBarHue.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar,int i,boolean fromUser) {
HueOpacity = i;
mainImageView.setFilter(setAdjustment(HueOpacity,SaturationOpacity,ShadowOpacity,WarmOpacity));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
阴影:
seekBarShadow.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar,boolean b) {
ShadowOpacity = i;
mainImageView.setFilter(setAdjustment(HueOpacity,WarmOpacity));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
WhiteBalance:
seekBarwarm.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar,boolean b) {
WarmOpacity = (float) i;
mainImageView.setFilter(setAdjustment(HueOpacity,WarmOpacity));
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。