Это потому, что это метод, прикрепленный к объекту div
- подумайте о нем так:
const div = {
addEventListener: function(event, callback) {...}
};
В этом примере this
будет ссылаться на div
, как вы ожидаете.
Это то, что на самом деле происходит в вашем коде, только это определяется по-другому.
В классе изображений есть свойство UriSource, которое вы можете искать
I believe you have to use interop (source):
using System.Windows.Interop;
using System.Windows.Media.Imaging;
public static ImageSource AsImageSource<TColor, TDepth>(
this Image<TColor, TDepth> image) where TColor : IColor, new()
{
return Imaging.CreateBitmapSourceFromHBitmap(image.Bitmap.GetHbitmap(),
IntPtr.Zero, Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
}
Which could be used like this:
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
using (Image<Bgr, byte> frame = capture.QueryFrame())
{
if (frame != null)
{
var bmp = frame.AsImageSource();
}
}
}
If the interop doesn't perform well enough, take a look at the source of Image.ToBitmap
and Image.get_Bitmap
to see how you could implement your own WriteableBitmap
.
Посмотрите вики-страницу Emgu -> Учебники -> Примеры -> WPF (Windows Presentation Foundation) Он содержит следующий фрагмент кода для преобразования вашего IImage в BitmapSource, который вы можете напрямую применить к своему элементу управления.
using Emgu.CV; using System.Runtime.InteropServices; ...
/// <summary>
/// Delete a GDI object
/// </summary>
/// <param name="o">The poniter to the GDI object to be deleted</param>
/// <returns></returns>
[DllImport("gdi32")]
private static extern int DeleteObject(IntPtr o);
/// <summary>
/// Convert an IImage to a WPF BitmapSource. The result can be used in the Set Property of Image.Source
/// </summary>
/// <param name="image">The Emgu CV Image</param>
/// <returns>The equivalent BitmapSource</returns>
public static BitmapSource ToBitmapSource(IImage image)
{
using (System.Drawing.Bitmap source = image.Bitmap)
{
IntPtr ptr = source.GetHbitmap(); //obtain the Hbitmap
BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
ptr,
IntPtr.Zero,
Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
DeleteObject(ptr); //release the HBitmap
return bs;
}
}
Я думаю, все, что вы ищете, это:
Image<Bgr, Byte> frame = capture.QueryFrame();
pictureBox1.Image = image.ToBitmap(pictureBox1.Width, pictureBox1.Height);
Я не уверен, но в документах не упоминается LocationMatch как возможный контекст.
«Контекст: конфигурация сервера, виртуальный узел, каталог, .htaccess»
http://httpd.apache.org/docs/2.0/mod/mod_expires.html
-121--5045363-Да, есть указатель: IntPtr
Википедия: «которая является безопасным управляемым эквивалентом int * и не требует небезопасного кода»
-121--1127623-Попробуйте.
http://easywebcam.codeplex.com/
Я использовал его и он был отличным..