Tag: image

如何显示使用Emgu捕获的网络摄像头图像?

我目前正在开发一个使用面部识别的项目。 因此,我需要一种向用户显示网络摄像头图像的方法,以便他可以调整他的脸部。 我一直在尝试使用尽可能少的CPU来从网络摄像头获取图像: VideoRendererElement WPFMediaKit DirectShow的库 但它们都不是很好……无论是太慢还是太耗费CPU资源。 然后我尝试了Emgu库 ,我觉得很棒。 起初,我在Windows窗体项目中尝试了它,并在图片框中更新图像。 但是,当我试图将它集成到我的WPF项目中时,我遇到了如何将我的图像传递给我的Image控件的问题。 现在,我有以下源代码: 而背后的代码: private Capture capture; private System.Timers.Timer timer; public Window1() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { capture = new Capture(); capture.FlipHorizontal = true; timer = new System.Timers.Timer(); timer.Interval = 15; timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); timer.Start(); } void timer_Elapsed(object sender, ElapsedEventArgs […]

如何将Bitmap转换为Base64字符串?

我正在尝试捕获屏幕,然后将其转换为Base64字符串。 这是我的代码: Rectangle bounds = Screen.GetBounds(Point.Empty); Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height); using (Graphics g = Graphics.FromImage(bitmap)) { g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size); } // Convert the image to byte[] System.IO.MemoryStream stream = new System.IO.MemoryStream(); bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); byte[] imageBytes = stream.ToArray(); // Write the bytes (as a string) to the textbox richTextBox1.Text = System.Text.Encoding.UTF8.GetString(imageBytes); // Convert byte[] […]

Image.FromStream(PostedFile.InputStream)失败。 (参数无效。)(AsyncFileUpload))

我正在使用AsyncFileUpload(AJAX Toolkit)上传图像。 我有一个处理图像大小调整的按钮。 这已经好了一段时间了,但现在不行了…… protected void BtnUploadImage_Click(object sender, EventArgs e) { var imageFileNameRegEx = new Regex(@”(.*?)\.(jpg|jpeg|png|gif)$”, RegexOptions.IgnoreCase); if (!AsyncFileUpload1.HasFile || !imageFileNameRegEx.IsMatch(AsyncFileUpload1.FileName)) { AsyncFileUpload1.FailedValidation = true; ErrorLabel.Visible = true; return; } ErrorLabel.Visible = false; var file = AsyncFileUpload1.PostedFile.InputStream; var img = Image.FromStream(file, false, false); … } 另一件我觉得很奇怪的事情:如果我尝试的图像小于80kb就可以了。 我们试图重启服务器,但没有改变。 相同的代码在我的机器上运行良好。 (听说之前?? :)) 我还尝试将文件保存在服务器上,然后通过Image.FromFile()获取文件,但后来我得到“无法访问已关闭的文件”。 怎么解决这个?

在C#中从图像中获取RGB数组

我正在编写一个用Java编写的小程序的C#实现。 我在我的Java应用程序中使用了BufferedImage.getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)函数。 但我无法在C#中找到这个版本,我不确定如何手动编写。

使用数据绑定在WPF MVVM中以ListView(或更好的东西!)显示图像

我试图在ListView中显示一些图像,但没有成功。 我正在使用WPF MVVM,而ListView是简单地显示套装和排名数据的延续。 (请参阅我之前的post: WPF中的MVVM – 如何提醒ViewModel模型中的更改……或者我应该?如果您感兴趣的话!)也就是说,我可以使用ListView之外的其他东西(如果这是建议)但我仍然想知道如何使用ListView,假设它是可行的。 我在ViewModel中绑定的属性是: public ObservableCollection PlayerCardImages{ get{ ObservableCollection results = new ObservableCollection(); foreach (CardModel card in PlayerCards) { Image img = new Image(); BitmapImage bi3 = new BitmapImage(); bi3.BeginInit(); // TODO: Pick card based on suit/rank. Just get 1 image working now bi3.UriSource = new Uri(“diamond-1.png”, UriKind.Relative); bi3.EndInit(); img.Stretch = […]

如何在c#中放大和缩小图像

我想编写一个程序来实现c#中的放大和缩小任务。 我不想调整pictureBox的大小,我想调整图片本身的大小。 但我不知道我到底要做什么。 你能帮我吗?

从c#中的byte 创建映像时参数无效错误

我试图在c#中将byte[]转换为Bitmap 。 以下是代码: MemoryStream ms = new MemoryStream(b); Bitmap bmp = new Bitmap(ms); 它显示错误创建Bitmap时Parameter is not valid 。 byte[] b来自网络流。 但是当我将这个byte []写入文件,并在任何图像查看器中打开此文件时,效果非常好。 以下是将byte []写入文件的代码: var fs = new BinaryWriter(new FileStream(“tmp.bmp”, FileMode.Create, FileAccess.Write)); fs.Write(b); fs.Close(); 我在这里想念的是什么? 编辑 这是我的完整代码导致问题 Socket s = listener.AcceptSocket(); byte[] b = new byte[imgLen]; s.Receive(b); MemoryStream ms = new MemoryStream(b); // now here […]

使用C#将Word文件页面转换为jpg图像

如何将word文档页面转换为特定图像? 我使用以下代码将其转换为.tiff图像 object varMissing = Type.Missing; object varFalseValue = false; object varTrueValue = true; Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); word.ActivePrinter = “Microsoft XPS Document Writer”; object fileName = startupPath + “\\” + filename1; object falseValue = false; object trueValue = true; object missing = Type.Missing; word.Visible = true; word.Activate(); Document doc = word.Documents.Open(ref fileName, ref […]

如何更改图像的分辨率(DPI)?

我有一张DPI为72的JPEG图片。我想将72 dpi更改为300 dpi。 如何使用C#更改JPEG图片的分辨率?

如何在不使用“从屏幕上复制”的情况下,仅将位图捕获为图像框显示的内容?

具体来说:我需要捕获图片框实际显示的特定区域作为位图。 区域的坐标由我已覆盖在图片框顶部的控件的边界指定(但属于图片框)。 当我制作区域的“快照”时,控件被隐藏。 我尝试使用普通的屏幕捕获方法(CopyFromScreen),但你无法真正控制那里的时间。 所以它正在捕捉“插页式”状态,比如我的图片框中的照片之间的过渡。 它经常只捕获纯黑色图像(图片框的背景颜色)。 所以我尝试将显示的图像(picturebox.image属性)转换为位图。 问题是图片框很少显示图像。 它显示了一些图像的部分,根据它的尺寸模式(缩放)进行缩放和剪裁。 所以我不能只拿走我的控制坐标并将它们从整个图像中剪切掉。 所以我试着估计图像的哪个部分正在显示,并根据它来修正我的矩形。 事实certificate,我基本上是在重新创建图片框的“缩放”代码来实现这一点(使用图片框的宽高比,图像的宽高比,猜测图像当前正在发生什么级别的缩放,如果它更大或小于图片框等)。 它不漂亮。 所以:现在我需要一种只捕获当前正在图片框的客户区显示的位图的方法,包括照片和当前正在其周围显示的任何黑色“信箱”。 有人有吗? 请记住,我不能依赖使用CopyFromScreen。 它对我的目的来说不够可靠。 我想我需要一种获取图片框的方法来告诉我它正在显示的位。