有没有办法在WPF中改变BitmapSource的调色板?(在运行时)我尝试的每个BitmapSource层次结构都具有对调色板的只读访问权限。
发布于 2012-12-27 03:31:55
我还没有找到一种很好的方法,但你总是可以从原始的位图重新创建一个位图:
如果您有:
Private myBitmap As System.Windows.Media.Imaging.WriteableBitmap
Private myCurrentPalette As List(Of Color) 然后,当您想要更改调色板时,请执行以下操作:
Dim iWidth As Integer = myBitmap.Width
Dim iHeight As Integer = myBitmap.Height
Dim iPixel(iWidth * iHeight - 1) As Byte
myBitmap.CopyPixels(iPixel, iWidth, 0)
myBitmap = New WriteableBitmap(iWidth, iHeight, 96, 96, PixelFormats.Indexed8, New BitmapPalette(myCurrentPalette))
myBitmap.WritePixels(New Int32Rect(0, 0, iWidth, iHeight), iPixel, iWidth, 0)然后你需要申请:
Image1.Source = myBitmap
https://stackoverflow.com/questions/12538177
复制相似问题