【发布时间】:2016-06-01 22:06:14
【问题描述】:
我从事图像捕获窗口应用程序的工作。当我通过窗口平板电脑中的应用程序捕获图像时,图像质量低并且在捕获的图像背景中显示黑暗。当我用平板电脑拍摄图像时,图像质量很好。 我的代码中缺少什么/问题? 我已经使用了你的代码共享...
private void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
ImgContainer.Image = b;
}
private void btnKeep_Click(object sender, EventArgs e)
{
int width = 457;
int height = 350;
Image tmpimg = ImgContainer.Image;
System.Drawing.Bitmap b = new System.Drawing.Bitmap(ImgContainer.Image, width, height);
System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(b);
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(0, 0, width, height);
System.Drawing.Imaging.ImageCodecInfo codec = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()[1];
System.Drawing.Imaging.EncoderParameters eParams = new System.Drawing.Imaging.EncoderParameters(1);
eParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
string ImagePath = Guid.NewGuid().ToString();
string imagefullpath = System.AppDomain.CurrentDomain.BaseDirectory + "imageFolder\\" + ImagePath + ".jpg";
b.Save(imagefullpath);
}
显示你被应用程序图像捕获............
显示你被平板电脑捕获............
请给我任何想法和解决方案来消除应用程序捕获的黑暗(上图)。
【问题讨论】:
-
只是猜测:平板电脑图像大小 =
3264x1826;您设置457x350并获得低质量图像 -
我知道,你是对的,但是 3264x1826 被转换成 457x350 然后质量不会改变,只会改变大小。
-
您是说...您的应用程序在Windows 平板电脑上运行,区别在于平板电脑自己的照片软件与您的软件在同一平板电脑上拍摄的图像?只是不清楚您是否使用了 2 种不同的硬件。还有为什么要标记
Flash?其中一张照片是否使用了闪光灯?您真正的问题是如何在您自己的应用程序中启用相机闪光灯?否则你在下面有一个正确的答案。要么接受它,要么编辑您的问题,以便更清楚地了解事实和目标。