это может звучать как репост уже заданного вопроса. Однако я потратил несколько дней на просмотр и тестирование множества различных примеров с различных веб-сайтов (включая stackoveflow.com). До сих пор я получал в основном нежелательные результаты, и я немного не понимаю, как добиться того или чего-то такого, что дает хорошие результаты? Если кто-то может помочь, я был бы очень признателен!
Я работаю в VB. NET и использую Visual Studio 2015.
Моя цель - получить четкое изображение в итоговом RTF файл, когда я открываю его в текстовом редакторе (я использую WPS Office). Однако низкое качество не в фокусе изображения, которое я получил в окончательном документе RTF, не является хорошим заголовком для описания, для которого я хочу его использовать! И после печати это будет выглядеть плохо! Я не ищу миниатюрное изображение, поскольку оно требуется для более крупного заголовка документа.
Большинство решений, которые я пробовал, связаны с изменением размера изображения и последующей вставкой его в текстовое поле Rich Text Box (RTB).
Однако, хотя я пробовал использовать интерполяцию, сглаживание и т. Д. c., Результаты невелики. Для изменения размера я пробовал примеры, которые используют деление, процент и т. Д. c.
Я работаю над приложением для личного использования, которое «вставляет» снимок экрана активного решения / приложения (например, растровое изображение ) в окно изображения (PB) и в RTB с использованием буфера обмена, заголовок добавляется, затем текст добавляется вручную в RTB, и результат сохраняется в виде файла RTF.
Проблемы с качеством изображения, которые я обнаружил:
- Вставка изображения после изменения размера / масштабирования оригинала (или копии) в окно изображения снижает качество?
- Сохранение в файл RTF или открытие файла RTF в текстовом редакторе снижает качественный? (Не уверены, что вызывает проблему?)
Оба эти процесса приводят к низкому качеству, не в фокусе изображения (с или без интерполяции, сглаживания, сглаживания и т. Д. c.)? Итак, мне кажется, что изменение размера перед вставкой снижает качество. Я пробовал вставить прямо из буфера обмена, а также скопировать изображение из окна изображения в буфер обмена, а затем вставить его в RTB. Обе эти процедуры дают хорошие результаты!
Чтобы быть объективным, я не могу поделиться всем кодом, который я тестировал, но приведу ниже простой пример кода, который обеспечивает наилучшее качество изображения для меня, то есть просто вставляя снимок экрана прямо из буфера обмена в RTB. Однако получившееся изображение после вставки в RTB не было изменено и поэтому слишком велико. Я не хочу вручную изменять размер изображения в документе RTF, так как это будет чрезвычайно повторяющаяся задача!
После вставки растрового изображения в RTF я использовал методы Select All или Selection Start - 1 для выберите изображение в RTB, но чтобы задать вопрос: «Как я могу изменить размер изображения в RTB?»
Вы можете спросить, почему я хочу это сделать. Что ж, вставка растрового изображения непосредственно в RTB дает мне изображение того же качества, что и в Picture Box. После сохранения в RTF-файл и его открытия в текстовом редакторе наблюдается небольшая потеря, но качество намного лучше, чем при использовании других методов, упомянутых выше (например, изменение размера и вставка)! Итак, мне стало любопытно попытаться вставить, а затем изменить размер! Вот мой код:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Check whether PB1 is empty:
If PictureBox1.Image Is Nothing Then
'Get image from clipboard to PB1:
PictureBox1.Image = My.Computer.Clipboard.GetImage
'Resize image to fit PB1:
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
'Paste image:
RichTextBox1.Paste()
End Sub