У меня есть элемент управления InkCanvas WPF, который я использую для захвата подписи в моем приложении. Управления выглядит следующим образом - это 700x300сохранение WPF InkCanvas в JPG - изображение обрезается
alt text http://img156.imageshack.us/img156/7885/inkcanvas.jpg
Однако, когда я сохранить его как JPG, полученное изображение выглядит следующим образом, а также 700x300
alt text http://img210.imageshack.us/img210/5668/saved.jpg
код Я используя для сохранения
sigPath = System.IO.Path.GetTempFileName();
MemoryStream ms = new MemoryStream();
FileStream fs = new FileStream(sigPath, FileMode.Create);
RenderTargetBitmap rtb = new RenderTargetBitmap((int)inkSig.Width, (int)inkSig.Height, 96d, 96d, PixelFormats.Default);
rtb.Render(inkSig);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(fs);
fs.Close();
Это XAML я использую:
<Window x:Class="Consent.Client.SigPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="Transparent" Topmost="True" AllowsTransparency="True"
Title="SigPanel" Left="0" Top="0" Height="1024" Width="768" WindowStyle ="None" ShowInTaskbar="False" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" >
<Border BorderThickness="1" BorderBrush="Black" Background='#FFFFFFFF' x:Name='DocumentRoot' Width='750' Height='400' CornerRadius='10'>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Name="txtLabel" FontSize="24" HorizontalAlignment="Center" >Label</TextBlock>
<InkCanvas Opacity="1" Background="Beige" Name="inkSig" Width="700" Height="300" />
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<Button FontSize="24" Margin="10" Width="150" Name="btnSave" Click="btnSave_Click">Save</Button>
<Button FontSize="24" Margin="10" Width="150" Name="btnCancel" Click="btnCancel_Click">Cancel</Button>
<Button FontSize="24" Margin="10" Width="150" Name="btnClear" Click="btnClear_Click">Clear</Button>
</StackPanel>
</StackPanel>
</Border>
В прошлом это работало отлично. Я не могу понять, что изменилось, что приводит к смещению изображения при его сохранении.
Я сделал небольшой образец для этого и использовал ваш точный код для сохранения .jpg. Я сделал множество изображений и не раз мог воспроизвести эту проблему! Это должно быть где-то еще - можете ли вы разместить свой XAML и что-нибудь еще, что может быть актуальным? – Charlie