コード例 #1
0
ファイル: Debug.xaml.cs プロジェクト: WildGenie/PuckControl
        private void _game_NewCameraImage(object sender, ImageEventArgs e)
        {
            _fps = ++_fps;

            if (_flags["cameraViewVisible"])
            {
                this.Dispatcher.Invoke((Action)(() =>
                {
                    IntPtr hBitmap = e.Image.GetHbitmap();

                    try
                    {
                        var source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(hBitmap,
                                                                                                  IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

                        this.imgCameraView.Source = source;
                    }
                    finally
                    {
                        e.Image.Dispose();
                        NativeMethods.DeleteObject(hBitmap);
                    }
                }));
            }
        }
コード例 #2
0
        public void ShowImage(ImageEventArgs imageEventArgs)
        {
            imgCamera.Source = imageEventArgs.FrameReadyEventArgs.BitmapImage;

            //BitmapImage image = imageEventArgs.FrameReadyEventArgs.BitmapImage;

            //System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(image.PixelWidth, image.PixelHeight, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

            //System.Drawing.Imaging.BitmapData data = bmp.LockBits(
            //new System.Drawing.Rectangle(System.Drawing.Point.Empty, bmp.Size), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

            //image.CopyPixels(Int32Rect.Empty, data.Scan0, data.Height * data.Stride, data.Stride); bmp.UnlockBits(data);

            MemoryStream      stream  = new MemoryStream();
            JpegBitmapEncoder encoder = new JpegBitmapEncoder();

            encoder.Frames.Add(BitmapFrame.Create((BitmapSource)imageEventArgs.FrameReadyEventArgs.BitmapImage));
            encoder.Save(stream);

            System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(stream);
            stream.Close();


            if (videoFileWriter.IsOpen)
            {
                videoFileWriter.WriteVideoFrame(bitmap);
            }
        }
コード例 #3
0
 /// <summary>
 /// Handles the ImageCommentsChanged event of the CommentController.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="ImageEventArgs"/> instance containing the event data.</param>
 /// <exception cref="NotImplementedException"></exception>
 private void CommentController_ImageCommentsChanged(object sender, ImageEventArgs e)
 {
     if (e.Image == ImageViewer.Image)
     {
         UpdateComments();
     }
 }
コード例 #4
0
 void reportDocument_ImageProcessing(object sender, ImageEventArgs e)
 {
     if (_clinic.Logo != null)
     {
         e.Image.Source = ImageDataConverter.BytesToBitmapImage(_clinic.Logo);
     }
 }
コード例 #5
0
ファイル: FileStreamCamera.cs プロジェクト: HE-Arc/ErgoOgama
        void videoSource_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
        {
            log.Debug("videoSource_NewFrame: Received a frame from the File video source");

            lock (InstanceImageDispose)
            {
                // log.Debug("videoSource_NewFrame: Considering disposal of previous Images");
                if (InstanceGray != null)
                {
                    // log.Debug("videoSource_NewFrame: Disposing of previous Gray frame");
                    InstanceGray.Dispose();
                    InstanceGray = null;
                }
                else
                {
                    // log.Debug("videoSource_NewFrame: No InstanceGray exists, no need to Dispose of it");
                }
            }

            log.Debug("videoSource_NewFrame: Converting to a new Gray");
            // InstanceGray = new Image<Gray, byte>((Bitmap)eventArgs.Frame.Clone());
            InstanceGray = new Image <Gray, byte>((Bitmap)eventArgs.Frame);
            log.Debug("videoSource_NewFrame: Finished converting to a new Gray");

            // notify about the new frame
            log.Debug("videoSource_NewFrame: Built Raising NewFrame event");
            ImageEventArgs imageEventArgs = new ImageEventArgs(InstanceGray);

            OnRaiseCustomEvent(imageEventArgs);
            log.Debug("videoSource_NewFrame: Event complete");
        }
コード例 #6
0
 /// <summary>
 /// Adds cards to the current pair that will be checked if match
 /// </summary>
 /// <param name="args"></param>
 private void AddCardToPairs(ImageEventArgs args)
 {
     if (!upheldCards.Exists((x) => x.Position == args.Position) && upheldCards.Count != 2)
     {
         upheldCards.Add(args);
     }
 }
コード例 #7
0
ファイル: JPGFormat.cs プロジェクト: vantruc/skimpt
    public void SaveImage(ImageEventArgs e)
    {
        ImageCodecInfo myImageCodecInfo;
        Encoder myEncoder;
        EncoderParameter myEncoderParameter;
        EncoderParameters myEncoderParameters;

        myImageCodecInfo = GetEncoderInfo(EncoderType);
        myEncoder = Encoder.Quality;
        myEncoderParameters = new EncoderParameters(1);
        myEncoderParameter = new EncoderParameter(myEncoder, imageQuality);
        myEncoderParameters.Param[0] = myEncoderParameter;

        try
        {
            string finalFile = System.IO.Path.Combine(e.FullSaveLocation, e.FullFileName) + "." + e.Extension;

            e.CapturedImage.Save(finalFile,
                                myImageCodecInfo, myEncoderParameters);

            //  e.CapturedImage.Save(finalFile);
            // e.CapturedImage.Save("c:\\users\\affan\\desktop\\jjajja.jpeg");
            ShowToastForm(finalFile);
            //this.Invoke(new ShowToastFormInvoker(ShowToastForm), e.FullSaveLocation + ".jpg");
        }
        catch(ArgumentException ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            myEncoderParameters.Dispose();
            myEncoderParameter.Dispose();
        }
    }
コード例 #8
0
        /// <summary>
        /// Eventhandler for updating the visual UI.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Output_UpdateVisualEvent(object sender, ImageEventArgs e)
        {
            BitmapSource MapImage = ConvertBitmapToBitmapImage(e.BitMapImage);

            MapImage.Freeze();
            UpdateVisualImage(MapImage);
        }
コード例 #9
0
 private void WorkspaceViewerOnChangedImage(object sender, ImageEventArgs e)
 {
     if (e.Image != null)
     {
         _statusBar.Panels[0].Text = e.Image.ToString();
     }
 }
コード例 #10
0
 public void SettExtTriggerData(ImageEventArgs imageData) //工具组实际运行(处理图像)时调用该函数获取实时图像
 {
     isExtTrigger = true;
     DisposeHobject(ImageTestOut);
     ImageTestOut = imageData.CameraImage;
     StartTime    = imageData.StartTime.D;        //获取图像处理开始时的时间
 }
コード例 #11
0
        void OnImageFingerprint(object source, ImageEventArgs ie)
        {
            rawImage = ie.RawImage;
            SetImage(ie.RawImage.Image);

            ExtractTemplate();
        }
コード例 #12
0
 private void OnImage(string source, int width, int height, IntPtr rawImage, int res)
 {
     if (this.onImage != null)
     {
         ImageEventArgs ie = new ImageEventArgs(source, rawImage, width, height, res);
         this.onImage(source, ie);
     }
 }
コード例 #13
0
        public void OnMovedImage(ImageEventArgs e)
        {
            EventHandler <ImageEventArgs> handler = MovedImage;

            if (handler != null)
            {
                handler(this, e);
            }
        }
コード例 #14
0
        public void OnSavedAllImage(ImageEventArgs e)
        {
            EventHandler <ImageEventArgs> handler = SavedAllImage;

            if (handler != null)
            {
                handler(this, e);
            }
        }
コード例 #15
0
        public void BasicGrayUsageTest()
        {
            // Can be used for testing to make sure N-Unit is responding properly
            log.Debug("Hello World");

            Bitmap             b    = new Bitmap(1280, 1024);
            Image <Gray, byte> gr   = new Image <Gray, byte>(1280, 1024, new Gray(0.1D));
            ImageEventArgs     args = new ImageEventArgs(gr);
        }
コード例 #16
0
        public void OnBeforRemoveImage(ImageEventArgs e, ref bool checkremove)
        {
            FilmStripBeforRemoveImageEventHandler handler = BeforRemoveImage;

            if (handler != null)
            {
                handler(this, e, ref checkremove);
            }
        }
コード例 #17
0
 void onImageReady(object sender, ImageEventArgs e)
 {
     //Rectangle lockArea = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
     //BitmapData bitmapData = bitmap.LockBits(lockArea, ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);
     //byte[] rawImageData = imagedata;
     //System.Runtime.InteropServices.Marshal.Copy(rawImageData, 0, bitmapData.Scan0, e.image.Width * e.image.Height * 2 * e.image.BytesPerPixel);
     //bitmap.UnlockBits(bitmapData);
     //displayImages.Image = bitmap;
 }
コード例 #18
0
ファイル: Home.xaml.cs プロジェクト: DenysVuika/IL.View
        private void OnImageViewRequested(object sender, ImageEventArgs e)
        {
            var view = new Image
            {
                Source  = e.ImageSource,
                Stretch = Stretch.None
            };

            DisplayContent(e.ImageName, view);
        }
コード例 #19
0
        private void onImageReady(object sender, ImageEventArgs args)
        {
            Image image = args.image;

            if (!_deviceHandles.ContainsKey((int)image.DeviceID))
            {
                initializeDeviceHandles();
            }
            _imageQueue.TryEnqueue(image);
        }
コード例 #20
0
        public void OnImageGetted(object sender, ImageEventArgs e)
        {
            Document document = new Document();

            document.Id        = Guid.NewGuid().ToString();
            document.ByteImage = e.ByteImage;
            document.Path      = e.Path;
            document.TripId    = MainPage.CurrentTrip.Id;
            documents.Add(document);
            App.documentManager.AddItem(document);
        }
コード例 #21
0
ファイル: SkimptImage.cs プロジェクト: xiexin36/skimpt
    private void ProcessImage(Image full)
    {
        string filename = utilities.GetRandomFileName();

        IMGARGS = new ImageEventArgs(
            full,
            CreateThumbnailImage(full, 100),
            mySettings.fileLocationSetting,
            mySettings.thumbnailLocationSetting,
            filename, filename + "_thumb", _imageFormat.Extension,
            DateTime.Now, mySettings.generateThumbNails);
    }
コード例 #22
0
        /// <summary>
        /// 当IO触发或(在线测试)相机连续触发采集到图像时,开始执行图像处理
        /// </summary>
        public void TrigerRun(ImageEventArgs imageData, int waitTime, int settingIndex, bool isShowTimeOut)
        {
            this.settingIndex = settingIndex;
            //超时检测
            bool isDelay = (!stopWatch.IsRunning || stopWatch.ElapsedMilliseconds > 150);

            if (isDelay)
            {
                stopWatch.Restart();
            }
            //硬件触发模式不检测超时;在线检测模式检测是否超时(硬件触发isShowTimeOut= true直接跳过;在线检测为isShowTimeOut=false,判断时间间隔是否大于200ms,若大于200ms,则跳过执行下一步)。
            if (isShowTimeOut == false && isDelay == false)
            {
                return;
            }
            if (imageRunFinishSignalFlow.WaitOne(waitTime))
            {
                Result_Acceptable = true;
                startExTime       = imageData.StartTime.D;
                //清理图像内存
                if (this.ImageData != null)
                {
                    this.ImageData.Dispose();
                }
                this.ImageData     = imageData;
                this.isOffLineMode = false;
                isExtTrigger       = true; //只要调用该函数,包括测试模式时,也是按外触发来执行的。
                threadRunSignal.Set();
            }
            else
            {
                Result_Acceptable = false;
                imageData.Dispose();
                if (isShowTimeOut)
                {
                    string message = string.Format("工具组{0}图像处理超时发生,请检查程序运行节拍", settingIndex);
                    Util.Notify(Level.Err, message);
                }
                else
                {
                    //Thread.Sleep(50);
                }
                if (isOffLineMode == false)
                {
                    if (!CommHandle.Instance.CommunicationParam.IsCamIOOutput)
                    {
                        autoUnit.RunCommWriteDataThread.WriteData("Image" + Environment.NewLine + "Done" + Environment.NewLine);
                        Util.Notify(Level.Err, "超时已处理");
                    }
                }
            }
        }
コード例 #23
0
        /// <summary>
        /// A slide show image has been rendered.
        /// </summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">An <see cref="ImageEventArgs"/> containing the rendered image.</param>
        private void SlideShow_ImageRendered(object sender, ImageEventArgs e)
        {
            lock (this.currentImageLock)
            {
                // IMPORTANT: Never store a reference to the e.Image object, always create a copy
                using (Graphics graphics = Graphics.FromImage(this.currentImage))
                {
                    graphics.DrawImageUnscaled(e.Image, 0, 0);
                }
            }

            this.Invalidate();
        }
コード例 #24
0
        private async void Reader_ImageTapped(object sender, ImageEventArgs e)
        {
            var byteArray = Convert.FromBase64String(e.Base64);
            var stream    = byteArray.AsBuffer().AsStream().AsRandomAccessStream();

            using (stream)
            {
                var bitmap = new BitmapImage();
                await bitmap.SetSourceAsync(stream);

                // do other thing
            }
        }
コード例 #25
0
ファイル: ThumbnailList.cs プロジェクト: code-mtnit/WPFSM
        /// <summary>
        /// Adds an image to the collection
        /// </summary>
        /// <param name="newImage">Images to add to the collection.</param>
        /// <returns>The ID value of the added image.
        /// If the orginally supplied id value was negative then a new ID value is created.</returns>
        /// <exception cref="ArgumentException">System.SystemException.ArgumentException -
        /// if any of the image ids already exist in the collection</exception>
        public void AddImage(ImageDocument image)
        {
            var AddedImages = new Collection <ImageDocument>();

            image.OrderInDocument = BindingSource.IndexOf(image) + 1;
            var ImgItm = new ImageListViewItem(image);

            if (Path.IsPathRooted(image.Description) && File.Exists(image.Description))
            {
                ImgItm = new ImageListViewItem(image.Description);
            }
            else
            {
                ImgItm.FileName = image.GUid.ToString();
            }

            ImgItm.Tag = image;

            ImgItm.Text   = image.OrderInDocument.ToString();
            ImgItm.ZOrder = image.OrderInDocument;

            var ti = BindingSource.IndexOf(image);

            if (ti > Items.Count)
            {
            }

            Items.Insert(BindingSource.IndexOf(image), ImgItm);//.Add(ImgItm);

            //if (image.Image != null)
            //{
            //    image.Image.Dispose();  //Added by rm 901018
            //    image.Image = null;
            //}



            if (null != AddedImage)
            {
                //var fImages = new Collection<BaseImage>();
                //var oi = 0;
                //foreach (var iigg in AddedImages)
                //{
                //    fImages[oi] = iigg;
                //    oi++;
                //}

                var e = new ImageEventArgs(AddedImages);
                AddedImage(this, e);
            }
        }
コード例 #26
0
        public void OnAddedImage(ImageEventArgs e)
        {
            EventHandler <ImageEventArgs> handler = AddedImage;

            if (handler != null)
            {
                handler(this, e);
            }

            if (this.Count == 1)
            {
                OnCurrentChanged(e);
            }
        }
コード例 #27
0
        private void OnImageCallback3Recive(object sender, ImageEventArgs e)
        {
            try
            {
                logger.Debug($"device: {m_SelectID} OnImageCallback3Recive");
                System.Drawing.Imaging.PixelFormat format = System.Drawing.Imaging.PixelFormat.Format24bppRgb;// .Format32bppRgb; .Format4bppIndexed
                int bitsPerPixel  = ((int)format & 0xff00) >> 8;
                int bytesPerPixel = (bitsPerPixel + 7) / 8;
                int stride        = ((Convert.ToInt16(e.dwWidth) * bytesPerPixel + 3) / 4) * 4;

                using (Bitmap oBitmap = new Bitmap(Convert.ToInt32(e.dwWidth), Convert.ToInt32(System.Math.Abs(e.dwHeight)), stride, format, e.Buffer))//.Format32bppRgb
                {
                    if (_h264Encoder == null)
                    {
                        OpenH264Lib.Encoder.OnEncodeCallback onEncode = (data, length, frameType) =>
                        {
                            var keyFrame = (frameType == OpenH264Lib.Encoder.FrameType.IDR) || (frameType == OpenH264Lib.Encoder.FrameType.I);
                            //writer.AddImage(data, keyFrame);
                            if (ReceivedYUVFrame != null)
                            {
                                if (data == null)
                                {
                                    logger.Warn($"onEncode get null data");
                                }
                                try
                                {
                                    ReceivedYUVFrame(m_SelectID, (uint)_stopwatch.ElapsedMilliseconds, data, keyFrame);
                                }
                                catch (Exception ex)
                                {
                                    logger.Error(ex.ToString());
                                }
                            }
                        };

                        _h264Encoder = new OpenH264Lib.Encoder(@"lib\openh264-1.8.0-win32.dll");
                        _h264Encoder.Setup(640, 480, 5000000, 10, 2.0f, onEncode);
                    }
                    var resizedBitmap = Process(oBitmap, oBitmap.Width, oBitmap.Height, 640, 480);
                    this.HasVideo = true;
                    _h264Encoder.Encode(resizedBitmap, _stopwatch.ElapsedMilliseconds);
                }
            }
            catch (Exception ex)
            {
                this.HasVideo = false;
                logger.Error(ex.ToString());
            }
        }
コード例 #28
0
 private void Controller_ImageAvailable(object sender, ImageEventArgs e)
 {
     image.Dispatcher.BeginInvoke((Action)(() =>
     {
         DisplayFPS();
         try
         {
             var FinalImage = ImageManipulation.Decorate(e.RawImage, sumoInformations);
             image.Source = FinalImage.ToWriteableBitmap(PixelFormats.Bgr24);
         }
         catch
         {
         }
     }));
 }
コード例 #29
0
        private void Move(ImageEventArgs args)
        {
            var moved = DirectoryHelper.HelperJob(HelperAction.Move,
                                                  args.ImagePath,
                                                  args.TargetPath);

            if (moved)
            {
                return;
            }
            var nameWithStamp = $"{DateTime.Now:yyyyMMddHHmmssffff}|" +
                                $"{args.ImagePath?.GetFileName()}";

            DirectoryHelper.HelperJob(HelperAction.Move,
                                      args.ImagePath, DirectoryHelper.TempDirectory, nameWithStamp.Replace("|", ""));
        }
コード例 #30
0
 /// <summary>
 /// 当软触发(外部通信)采集到图像时,开始执行处理图像
 /// </summary>
 public void TriggerRun(ImageEventArgs imageData, int settingIndex, int waitTime)
 {
     if (this.ImageData != null)
     {
         this.ImageData.Dispose();
     }
     this.imageData    = imageData;
     isGrabber         = true;
     this.settingIndex = settingIndex;
     this.cameraIndex  = imageData.CameraIndex;
     if (imageRunFinishSignalFlow.WaitOne(waitTime))
     {
         startExTime = imageData.StartTime.D;
         threadRunSignal.Set();
     }
 }
コード例 #31
0
        protected virtual void OnRaiseCustomEvent(ImageEventArgs imageEventArgs)
        {
            // Each device calls this method when a new frame has been captured

            // Make a temporary copy of the event to avoid possibility of
            // a race condition if the last subscriber unsubscribes
            // immediately after the null check and before the event is raised.
            EventHandler <ImageEventArgs> handler = OnImage;

            FrameCounter++;

            // Event will be null if there are no subscribers
            if (OnImage != null)
            {
                OnImage(this, imageEventArgs);
            }
        }
コード例 #32
0
ファイル: FileStreamCamera.cs プロジェクト: DeSciL/Ogama
    void videoSource_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
    {
      log.Debug("videoSource_NewFrame: Received a frame from the File video source");

      lock (InstanceImageDispose)
      {
        // log.Debug("videoSource_NewFrame: Considering disposal of previous Images");
        if (InstanceGray != null)
        {
          // log.Debug("videoSource_NewFrame: Disposing of previous Gray frame");
          InstanceGray.Dispose();
          InstanceGray = null;
        }
        else
        {
          // log.Debug("videoSource_NewFrame: No InstanceGray exists, no need to Dispose of it");
        }
      }

      log.Debug("videoSource_NewFrame: Converting to a new Gray");
      // InstanceGray = new Image<Gray, byte>((Bitmap)eventArgs.Frame.Clone());
      InstanceGray = new Image<Gray, byte>((Bitmap)eventArgs.Frame);
      log.Debug("videoSource_NewFrame: Finished converting to a new Gray");

      // notify about the new frame
      log.Debug("videoSource_NewFrame: Built Raising NewFrame event");
      ImageEventArgs imageEventArgs = new ImageEventArgs(InstanceGray);
      OnRaiseCustomEvent(imageEventArgs);
      log.Debug("videoSource_NewFrame: Event complete");
    }
コード例 #33
0
 void fsc_OnImage( object sender, ImageEventArgs e )
 {
     log.Debug( "fsc_OnImage: FileStream camera just sent me an image!" );
 }
コード例 #34
0
ファイル: JPGFormat.cs プロジェクト: vantruc/skimpt
 /// <summary>
 /// Event handler for imagecaptured. When the image is captured
 /// by SkimptImage, then it raises this event.  
 /// </summary>
 /// <param name="e">
 /// Has all the information about the Image captured by Skimpt
 /// </param>
 void output_ImageCaptured(object sender, ImageEventArgs e)
 {
     SaveImage(e);
 }
コード例 #35
0
ファイル: Renderer.cs プロジェクト: BobbyCannon/MarkR
        public virtual string Image(string href, string title, string text)
        {
            var args = new ImageEventArgs(href, href, text, title);
            OnImageParsed(args);

            var @out = "<img src=\"" + args.Src + "\" alt=\"" + args.Alt + "\"";

            if (!string.IsNullOrEmpty(args.Title))
            {
                @out += " title=\"" + args.Title + "\"";
            }

            @out += Options.XHtml ? " />" : ">";
            return @out;
        }
コード例 #36
0
ファイル: SkimptImage.cs プロジェクト: vantruc/skimpt
 //This method raises the ImageCapturing event
 private void OnImageCapturing(ImageEventArgs IMGARGS)
 {
     ImageCapturing(this, IMGARGS);
 }
コード例 #37
0
ファイル: NativePlaylist.cs プロジェクト: sekotin/torshify
 internal void OnImageChanged(ImageEventArgs e)
 {
     ImageChanged.RaiseEvent(this, e);
 }
コード例 #38
0
ファイル: SkimptImage.cs プロジェクト: vantruc/skimpt
 private void ProcessImage(Image full)
 {
     string filename = utilities.GetRandomFileName();
     IMGARGS = new ImageEventArgs(
                                  full,
                                  CreateThumbnailImage(full, 100),
                                  mySettings.fileLocationSetting,
                                  mySettings.thumbnailLocationSetting,
                                  filename, filename + "_thumb",_imageFormat.Extension,
                                  DateTime.Now, mySettings.generateThumbNails);
 }
コード例 #39
0
        /// <summary>
        /// Sends the captured image to the client.
        /// </summary>
        private void Capturer_OnImageCaptured(object sender, ImageEventArgs e)
        {
            byte[] img = ImageHandler.ImageHandler.ImageToBytes(e.Image);
            var msg = new RCS_Render_Job_Result(e.ConcernedRenderJobID, img, RemoteType.Agent);

            try
            {
                this.SendMessage(MessageCode.MC_Render_Job_Result, msg);
            }
            catch
            {
            }
        }
コード例 #40
0
ファイル: Markdown.cs プロジェクト: BobbyCannon/MarkR
 /// <summary>
 /// Raises the <see cref="ImageParsed" /> event.
 /// </summary>
 /// <param name="e"> The event data. </param>
 private void OnImageParsed(ImageEventArgs e)
 {
     ImageParsed?.Invoke(this, e);
 }