Подскажите, какие существуют способы качественного масштабирования изображений с текстом.
Пробовал так:
using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(imageBitmap)) {
graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
graphics.DrawImage(imageBitmap, 0, 0, width, height);
}
ImgBox.Source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
imageBitmap.GetHbitmap(), IntPtr.Zero,
Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
Использовал Emgu CV:
Image<Bgr, Byte> captureImage = new Image<Bgr, byte>(imageBitmap);
Image<Bgr, byte> resizedImage = captureImage.Resize(width, height, Emgu.CV.CvEnum.Inter.Area);
ImgBox.Source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
resizedImage.ToBitmap().GetHbitmap(),
IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
Выводил так:
<Image x:Name="ImgBox" Width=".." Height=".." SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="Fant"/>
Но результата это нужного не даёт :(
Текст, если он есть на картинках, по-прежнему размывается или сильно рябит.
Для примера как мне нужно, приведу алгоритм TeamViewer. Исходное изображение:
Результат масштабирования:
Добавлю ещё вот какую тему: что если я имею не Bitmap
, а ID3D11Texture2D
? Как тут качественно "смаштабировать" без преобразований в другие типы (например, в тот же Bitmap
)?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть datagridview и combobox их источники List-ы, мне нужно чтобы когда выбирали один элемент из combobox, то datagridview показывал элементы связанные с элементом...
Пытаюсь сделать всплывающие оповещения на windows 10Сперва VS просто отказался компилировать код, при этом никаких ошибок он графически не выделил
Нужно сделать, чтобы если координата x врага не равнялась координате x игрока, то враг передвигался в его сторонуВ начале кажется что работает,...
Есть два окна, родительское и модальное с авторизацией (допустим)В родительском код: