通过将PixelHeight设置为StreamSource,BitmapImage可以自动获取PixelHeight、PixelWidth和PixelFormat等。但WritableBitmap做不到。我是否必须将byte[]转换为BitmapImage,获取PixelHeight和PixelWidth以及PixelFormat,与现有的WritableBitmap进行比较。如果像素改变了,新的WritableBitmap来更新它,如果没有改变,只是BitmapImage.CopyPixels到WritableBitmap?
我想在我的pc上显示100个远程pc监视器。并且远程pc可以动态设置像素质量。数据可以通过远程过程调用在我的pc上接收,只需byte[]图像。
发布于 2020-05-27 17:57:13
我使用下面的代码逐个字节地编写相同的代码
bitmap.Lock();
IntPtr buffer = bitmap.BackBuffer;
//Logic to write to buffer by pixel by pixel using Parallel.Foreach()
bitmap.AddDirtyRect
bitmap.UnLock()这里的问题是,有时在渲染实际图像之前,会有黑色背景,然后实际图像就会出现,任何人都知道这一点
发布于 2020-08-21 17:18:12
Wpf Xaml code used
<Grid x:Name="ImageGrid" Grid.Row="1" >
<AdornerDecorator ClipToBounds="True">
<Canvas x:Name="ImageCanvas" Focusable="True"
Background="{StaticResource Moonstone}"
Width="{Binding WindowWidth}"
Height="{Binding WindowHeight}"
>
<Image Canvas.Left="{Binding Path=ImagePositionLeft}"
Canvas.Top="{Binding Path=ImagePositionTop}"
RenderTransformOrigin="0.1,0.1"
Source="{Binding ImSource}"
Width="{Binding Path=ImageActualWidth}"
Height="{Binding Path=ImageActualHeight}"
Stretch="None"
RenderOptions.BitmapScalingMode="{Binding ScalingMode}">
<Image.RenderTransform>
<MatrixTransform Matrix="{Binding CurrTransform.Matrix}"></MatrixTransform>
</Image.RenderTransform>
</Image>
</Canvas>
</AdornerDecorator>
</Grid>https://stackoverflow.com/questions/57407313
复制相似问题