0

WPFでBitmapSourceのパレットを変更する方法はありますか?(実行時)私が試したすべてのBitmapSource階層には、パレットへの読み取り専用アクセス権があります。

4

1 に答える 1

0

私はそれをうまく行う方法を見つけていませんが、いつでも元のビットマップからビットマップを再作成できます。

あなたが持っている場合:

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

于 2012-12-26T19:31:54.967 に答える