Я пытаюсь отобразить текст и изображение для записываемого растрового изображения, чтобы сделать 1 более крупное изображение, и этот метод работал в других местах для создания или обработки изображений, но для по какой-то причине этот экземпляр создает только черное изображение. Если я просто установил источник изображения в оригинальный WriteableBitmap, он будет отображаться просто отлично, но когда я вызываю SaveJpeg, а затем LoadJpeg, он отображается как черное изображение (и да, мне нужно вызвать SaveJpeg, так как это фактически передается до сервер). Ниже показано, как я пытаюсь сделать элементы:WriteableBitmap.SaveJpeg отображает черное изображение (WP7)
NoteViewModel note = Instance.Note;
var grid = new Grid()
{
Height = 929,
Width = 929
};
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(679) });
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
var noteText = new TextBlock()
{
Text = note.Text,
FontFamily = note.FontFamily,
Foreground = note.FontColor,
TextWrapping = System.Windows.TextWrapping.Wrap,
Width = 929,
Height = 679
};
Grid.SetRow(noteText, 0);
grid.Children.Add(noteText);
WriteableBitmap sigImage = Instance.Signature.SignatureImage;
var sig = new Image()
{
Source = sigImage,
Height = 250,
Width = (sigImage.PixelWidth/sigImage.PixelHeight) * 250,
Margin = new Thickness(929 - ((sigImage.PixelWidth/sigImage.PixelHeight) * 250), 0, 0, 0)
};
Grid.SetRow(sig, 1);
grid.Children.Add(sig);
var messagePicture = new WriteableBitmap(grid, null);
var stream = new MemoryStream();
messagePicture.SaveJpeg(stream, messagePicture.PixelWidth, messagePicture.PixelHeight, 0, 100); //Save to a temp stream
stream.Position = 0;
var test = new WriteableBitmap(929,929); //Load the picture back up to see it
test.LoadJpeg(stream);
img.Source = test; //Show the image on screen (img is an Image element)
Насколько велика (мудрость) - ваш jpg? Можете ли вы изменить качество от 100 до 95 и рассказать, все ли это происходит (только спрашивая, потому что я никогда не использую 100, всегда использую 95, и у меня есть аналогичный код во многих местах, работающий) –
Это 929 x 929, и изменение качества не позволяет, Кажется, что-то исправить. – Daniel