C++ BuilderXE 用imageENView的图片进行批量的调整对比度,亮度,锐化,美化图片

这段代码展示了使用ImageEn库实现批量图像处理功能。
首先从控件获取对比度(intA1)、亮度(intA2)、锐化(intA3)等参数,以及色调(intB1)、饱和度(intB2)、亮度(DB3)等着色参数。通过循环遍历所有图像,对每个图像依次应用调整亮度/对比度/饱和度的处理(AdjustBrightnessContrastSaturation),并根据复选框决定是否进行着色处理(Colorize)。处理后的图像会添加到新的视图控件中。
代码注释还提供了各参数的范围说明:亮度(-100到512)、对比度...
int A1=RzSpinEdit3->EditText.ToInt();//对比度
int A2=RzSpinEdit6->EditText.ToInt(); //亮度
int A3=RzSpinEdit8->EditText.ToInt(); //锐化
bool CHK4=CheckBox6->Checked; //是否着色
int B1=RzSpinEdit7->EditText.ToInt(); //色调
int B2=RzSpinEdit9->EditText.ToInt(); //饱和度
Double B3=RzSpinEdit10->EditText.ToDouble(); //亮度
for (int i = 0; i < ImageEnMView1->ImageCount; i++)
{
TImageEnView *tempView = new TImageEnView(this);
try {
TBitmap *bitmap = ImageEnMView1->GetBitmap(i);
if (bitmap) {
tempView->IEBitmap->Assign(bitmap);
//对图片进行调整对比度,亮度,锐化
tempView->Proc->AdjustBrightnessContrastSaturation(A1,A2,A3); // 示例:应用一个中等强度的锐化
if(CHK4)//是否增强着色功能
tempView->Proc->Colorize(B1,B2,B3/(float)100); //
//-----------------------------
ImageEnMView2->AppendImage(tempView->Bitmap);
}
}
__finally {
delete tempView;
}
}
参考资料:
//Parameter
//Description
//Brightness
//A value between -100 and 512
//Contrast
//A value between -100 and 100
//Saturation
//A value between 0 and 512
// 提高图像的亮度、对比度及色彩饱和度
//ImageEnView1.Proc.AdjustBrightnessContrastSaturation(50, 10, 10);
// 仅提高图像的亮度与对比度,保持原有的色彩饱和度
//ImageEnView1.Proc.AdjustBrightnessContrastSaturation(50, 10, 0);
//参数 描述
//hue 介于0到359之间的数值(对应于六角锥图上0到359度之间的颜色范围)
//saturation 介于0(灰色)到99(纯色)之间的数值
//luminosity 如果保持原始的亮度不变,则该值为1;例如,当亮度增加10%时,luminosity的值为1.1
// 为图像应用棕褐色效果
//ImageEnView.Proc.Colorize(40, 50, 1.1);

