首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WPF中用byte[]更新WritableBitmap

如何在WPF中用byte[]更新WritableBitmap
EN

Stack Overflow用户
提问于 2019-08-08 15:27:53
回答 2查看 84关注 0票数 0

通过将PixelHeight设置为StreamSource,BitmapImage可以自动获取PixelHeight、PixelWidth和PixelFormat等。但WritableBitmap做不到。我是否必须将byte[]转换为BitmapImage,获取PixelHeight和PixelWidth以及PixelFormat,与现有的WritableBitmap进行比较。如果像素改变了,新的WritableBitmap来更新它,如果没有改变,只是BitmapImage.CopyPixels到WritableBitmap?

我想在我的pc上显示100个远程pc监视器。并且远程pc可以动态设置像素质量。数据可以通过远程过程调用在我的pc上接收,只需byte[]图像。

EN

回答 2

Stack Overflow用户

发布于 2020-05-27 17:57:13

我使用下面的代码逐个字节地编写相同的代码

代码语言:javascript
复制
bitmap.Lock();
IntPtr buffer = bitmap.BackBuffer;
//Logic to write to buffer by pixel by pixel using Parallel.Foreach()
bitmap.AddDirtyRect
bitmap.UnLock()

这里的问题是,有时在渲染实际图像之前,会有黑色背景,然后实际图像就会出现,任何人都知道这一点

票数 0
EN

Stack Overflow用户

发布于 2020-08-21 17:18:12

代码语言:javascript
复制
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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57407313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档