Я пытаюсь обрезать и изменять размер головы Стива, скин по умолчанию для Minecraft! :-)Как я могу обрезать и изменять размер изображения?
Но у меня возникают некоторые проблемы, я получил кадрирование вниз, но изменения размера не работает, а изображение все размыто :-(
Мой XAML:
<Image Height="60" Width="60" Name="ProfileImage" Stretch="UniformToFill" />
Мой код позади:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
System.Drawing.Rectangle cropRect = new System.Drawing.Rectangle(8,8,8,8);
Bitmap source = System.Drawing.Image.FromFile("steve.png") as Bitmap;
Bitmap target = new Bitmap(60, 60);
using(Graphics g = Graphics.FromImage(target))
{
g.DrawImage(source,
new System.Drawing.Rectangle(0, 0, target.Width, target.Height),
cropRect,
GraphicsUnit.Pixel);
g.Dispose();
ProfileImage.Source = CreateBitmapSourceFromBitmap(target);
}
}
public static BitmapSource CreateBitmapSourceFromBitmap(Bitmap bitmap)
{
if (bitmap == null)
throw new ArgumentNullException("bitmap");
return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
}
кто-нибудь есть ключ кожа выглядит так, и головную часть, что я хочу (8,8,8 (ширина), 8 (высота)):
Когда вы говорите «blury» вы имеете в виду некачественно? Если вы измените размер изображения 8px x 8px на 60px x 60px, он будет выглядеть пикселизованным, вы просто делаете пиксели больше. –
Проблема заключается в том, что она не является «пиксельной», а не резким изображением. Похоже, что кто-то забрызгал воду на водонепроницаемую краску: D – Jason94
Не совсем уверен, что бы это было похоже, но похоже, что она интерполирует, чтобы попытаться сгладить края больших пикселей. Вы действительно хотите пикселизованное изображение, а не интерполированное? –