私は長方形を持っていて、それを画像で埋めます
<Rectangle Height="95" Fill="{Binding Path=Image,RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay,Converter={StaticResource ConvertBase64toImage}}" Stroke="{x:Null}" x:Name="EditPhotoRectangel">
<Rectangle.BitmapEffect>
<DropShadowBitmapEffect ShadowDepth="7" Softness="0.75"/>
</Rectangle.BitmapEffect>
</Rectangle>
画像は、画像を設定したbase64文字列です。
private string ImageToBase64(System.Drawing.Image image, ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
コンバーターを使用して、Base64を長方形を塗りつぶすためのimagebrushに変換します。
ImageBrush brush = new ImageBrush();
BitmapImage bitmap = new BitmapImage();
// convert base64string to byte[].
byte[] binaryData = System.Convert.FromBase64String((string)value);
bitmap.BeginInit();
// Initializes a new non-resizable instance of the MemoryStream class based on the binaryData array.
bitmap.StreamSource = new MemoryStream(binaryData);
bitmap.EndInit();
//set bitmapimage for brush imagesource
brush.ImageSource = bitmap;
return brush;
私の問題はRectangle
、myimageを反転させてこの塗りつぶしの画像を選択したときです。