C # Объединение двух изображений - Масштабирование [дубликат]

Предположим, вы хотите удалить второй объект по свойству поля.

С ES6 это так же просто.

myArray.splice(myArray.findIndex(item => item.field === "cStatus"), 1)
0
задан MaxB 26 February 2018 в 17:40
поделиться

1 ответ

Вы не устанавливаете значения dpi. Они выполняются в DrawImage, поэтому вам нужно установить их с помощью bitmap.SetResolution(dpix, dpiy). Когда они будут отличаться от изображений, результаты тоже будут. Вы можете получить «правильный» из объекта Graphics g или решить, что вы хотите.

Быстрое исправление:

        for (int i = 0; i < images.Count; i++)
        {
            ((Bitmap)images[i]).SetResolution(g.DpiX, g.DpiY);
            g.DrawImage((Bitmap)images[i], new Point(10, (i + 1) * 10 + size));
            Bitmap bmp = (Bitmap)images[i];
            ...
        }

Обратите внимание, что только что созданное растровое изображение использует разрешение экрана на дюйм по умолчанию. Если вы хотите контролировать dpi, вам также нужно установить их для list!

Также обратите внимание, что я не изменил ваш код; чтобы упростить последнюю строку, нужно действительно перейти к началу цикла, а затем использовать bmp вместо элемента массива.

1
ответ дан TaW 15 August 2018 в 23:03
поделиться
  • 1
    При рисовании нового свежего изображения вы можете обойти проблемы с разрешением dpi, используя вместо Point Rectangle и присваивая ему размеры окрашенного изображения. Он будет "изменять размер" изображение с заданным размером вместо применения dpi. – Nyerguds 1 March 2018 в 21:27
  • 2
    Правда. Но вычисление Rectangle не намного проще, чем установка одинаковых значений dpi, не так ли? – TaW 1 March 2018 в 23:44
  • 3
    Нечего подсчитывать; прямоугольник не инициализирован из 4 координат, он сделан из точки начала и размеров. Все, что вам нужно сделать, это дать те же самые значения точки начала, что и вы, и ширину и высоту изображения как два других аргумента. – Nyerguds 1 March 2018 в 23:47
  • 4
    Тем не менее, ваш ответ с учетом точек на дюйм имеет дополнительную ценность для объяснения why . Но недостатком является то, что он изменяет свойства объекта окрашенного изображения для этапа обработки, который никак не должен влиять на этот объект. – Nyerguds 1 March 2018 в 23:52
  • 5
    Исходный объект на самом деле не изменен, если вы его не сохранили. Размер Rectangle должен определяться каким-то образом, в зависимости от потребностей OP. Два действительных способа управления результирующим размером. – TaW 1 March 2018 в 23:56
Другие вопросы по тегам:

Похожие вопросы: