如何从鼠标坐标中获取像素的正确位置?

里娜

我正在使用来获取鼠标坐标e.GetPosition当它接近0时,它将返回正确的坐标,但是,我从图像右上角单击的次数越多,获得的精度就越高。

我希望能够单击一个像素并更改其颜色。但是现在它更改了另一个像素,而不是我单击的像素(0,0除外)。

 private void image_MouseDown(object sender, MouseButtonEventArgs e)
 {
       // coordinates are now available in p.X and p.Y
       var p = e.GetPosition(image);

       System.Drawing.Color red = System.Drawing.Color.FromArgb(255, 0, 0);

       //converting to bitmap
       MemoryStream outStream = new MemoryStream();

       BitmapEncoder enc = new BmpBitmapEncoder();
       enc.Frames.Add(BitmapFrame.Create(wBitmap));
       enc.Save(outStream);
       System.Drawing.Bitmap img = new System.Drawing.Bitmap(outStream);

       //calculating pixel position
       double pixelWidth = image.Source.Width;
       double pixelHeight = image.Source.Height;
       double dx = pixelWidth * p.X / image.ActualWidth;
       double dy = pixelHeight * p.Y / image.ActualHeight;

       //converting to int
       int x = Convert.ToInt32(dx);
       int y = Convert.ToInt32(dy);
           
       img.SetPixel(x, y, red);

       //putting it back to writable bitmap and image    
       wBitmap = BitmapToImageSource(img);
       image.Source = wBitmap;
}

像素改变的图像

我想在图像中更改这样的像素。但是,它不会改变我单击的像素,但会再向上一点。

克莱门斯

为了获取SourceImage元素上鼠标事件位图内的像素位置,您必须使用BitmapSource的PixelWidthPixelHeight而不是Width和Height:

private void ImageMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    var image = (Image)sender;
    var source = (BitmapSource)image.Source;
    var mousePos = e.GetPosition(image);

    var pixelX = (int)(mousePos.X / image.ActualWidth * source.PixelWidth);
    var pixelY = (int)(mousePos.Y / image.ActualHeight * source.PixelHeight);

    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

来自分类Dev

如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

来自分类Dev

ubuntu中的图像查看器,可以显示图像中当前鼠标位置的像素坐标和像素值

来自分类Dev

ubuntu中的图像查看器,可以显示图像中当前鼠标位置的像素坐标和像素值

来自分类Dev

在emgu 3.0.0.0中纠正形状后如何获取像素的坐标?

来自分类Dev

如何获取Kinect中像素深度的X,Y坐标?

来自分类Dev

如何获取图像中像素的x,y(坐标)数组

来自分类Dev

如何获取视图在坐标中的位置?

来自分类Dev

从鼠标位置的图像获取像素值

来自分类Dev

获取图像中每个像素的坐标

来自分类Dev

我如何获取Form1鼠标进入事件中的鼠标坐标X和Y?

来自分类Dev

在文本坐标中获取文本区域中的鼠标单击位置

来自分类Dev

画布:如何获取鼠标指针的坐标

来自分类Dev

如何获取鼠标坐标作为变量?

来自分类Dev

如何在pygame中获取精灵位置的坐标?

来自分类Dev

如何在非坐标中获取位置地址

来自分类Dev

如何通过wpf画布中的坐标获取矩形位置

来自分类Dev

如何从坐标中获取有关位置或状态的信息

来自分类Dev

获取 QImage 像素坐标

来自分类Dev

在svg中获取鼠标位置

来自分类Dev

如何获得相对于鼠标位置的坐标位置?

来自分类Dev

如何在视图模型中获取鼠标位置

来自分类Dev

如何在Qt中获取鼠标在屏幕上的位置?

来自分类Dev

如何在WPF中获取鼠标在屏幕上的位置?

来自分类Dev

获取具有鼠标位置定义的坐标的线

来自分类Dev

如何在Matlab中使用经过校准的相机从世界坐标中获取像素索引

来自分类Dev

如何知道a-frame场景中鼠标点击的3D坐标位置

来自分类Dev

从获取的坐标中获取位置名称

来自分类Dev

鼠标坐标获取方法

Related 相关文章

  1. 1

    如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

  2. 2

    如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

  3. 3

    ubuntu中的图像查看器,可以显示图像中当前鼠标位置的像素坐标和像素值

  4. 4

    ubuntu中的图像查看器,可以显示图像中当前鼠标位置的像素坐标和像素值

  5. 5

    在emgu 3.0.0.0中纠正形状后如何获取像素的坐标?

  6. 6

    如何获取Kinect中像素深度的X,Y坐标?

  7. 7

    如何获取图像中像素的x,y(坐标)数组

  8. 8

    如何获取视图在坐标中的位置?

  9. 9

    从鼠标位置的图像获取像素值

  10. 10

    获取图像中每个像素的坐标

  11. 11

    我如何获取Form1鼠标进入事件中的鼠标坐标X和Y?

  12. 12

    在文本坐标中获取文本区域中的鼠标单击位置

  13. 13

    画布:如何获取鼠标指针的坐标

  14. 14

    如何获取鼠标坐标作为变量?

  15. 15

    如何在pygame中获取精灵位置的坐标?

  16. 16

    如何在非坐标中获取位置地址

  17. 17

    如何通过wpf画布中的坐标获取矩形位置

  18. 18

    如何从坐标中获取有关位置或状态的信息

  19. 19

    获取 QImage 像素坐标

  20. 20

    在svg中获取鼠标位置

  21. 21

    如何获得相对于鼠标位置的坐标位置?

  22. 22

    如何在视图模型中获取鼠标位置

  23. 23

    如何在Qt中获取鼠标在屏幕上的位置?

  24. 24

    如何在WPF中获取鼠标在屏幕上的位置?

  25. 25

    获取具有鼠标位置定义的坐标的线

  26. 26

    如何在Matlab中使用经过校准的相机从世界坐标中获取像素索引

  27. 27

    如何知道a-frame场景中鼠标点击的3D坐标位置

  28. 28

    从获取的坐标中获取位置名称

  29. 29

    鼠标坐标获取方法

热门标签

归档