powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Работа с BitMap
11 сообщений из 11, страница 1 из 1
Работа с BitMap
    #34026083
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть задача:

подгрузить картинку из файла, подгрузить другую картинку из файла.

совместить изображения по определенным правилам и выгрузить картинку в третий файл. Какие инструменты посоветуете?

Пробую Bitmap:

bitMap = new Bitmap(inpStream);
MemoryStream stream = new MemoryStream();
bittMap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);

теперь stream становится на 100 Кб меньше, чем inpStream.

Подскажите решение.

Спасибо.
...
Рейтинг: 0 / 0
Работа с BitMap
    #34026442
algol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Аноним, Вы писали:

А>bitMap = new Bitmap(inpStream);
А>MemoryStream stream = new MemoryStream();
А>bittMap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
А>теперь stream становится на 100 Кб меньше, чем inpStream.

И в чем проблема? Во-первых, JPEG это компрессия с потерей качества, и перепакованный файл будет отличаться от оригинального. Во-вторых, возможно вы сохраняете с другим коэффициентом сжатия/качества, чем в оригинальном файле. В GDI+ quality factor по умолчанию то ли 70, то ли 75. Вы можете задать свой коэффициент, если не устраивает значение по умолчанию — Q324790
...
Рейтинг: 0 / 0
Работа с BitMap
    #34026566
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что этот объект заполняет массив нулями...

Здравствуйте, algol, Вы писали:

A>Здравствуйте, Аноним, Вы писали:

А>>bitMap = new Bitmap(inpStream);
А>>MemoryStream stream = new MemoryStream();
А>>bittMap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
А>>теперь stream становится на 100 Кб меньше, чем inpStream.

A>И в чем проблема? Во-первых, JPEG это компрессия с потерей качества, и перепакованный файл будет отличаться от оригинального. Во-вторых, возможно вы сохраняете с другим коэффициентом сжатия/качества, чем в оригинальном файле. В GDI+ quality factor по умолчанию то ли 70, то ли 75. Вы можете задать свой коэффициент, если не устраивает значение по умолчанию — Q324790
...
Рейтинг: 0 / 0
Работа с BitMap
    #34026733
algol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Аноним, Вы писали:

А>Дело в том, что этот объект заполняет массив нулями...

А Bitmap из stream действительно загружен? Свойства типа Height, Width, PixelFormat установлены?
...
Рейтинг: 0 / 0
Работа с BitMap
    #34026803
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, спасибо.
Просто он позиционировал буфер на конец массива.

Скажите, как мне сделать наложение одной картинки на другую?





Здравствуйте, algol, Вы писали:

A>Здравствуйте, Аноним, Вы писали:

А>>Дело в том, что этот объект заполняет массив нулями...

A>А Bitmap из stream действительно загружен? Свойства типа Height, Width, PixelFormat установлены?
...
Рейтинг: 0 / 0
Работа с BitMap
    #34026855
algol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Аноним, Вы писали:

А>Скажите, как мне сделать наложение одной картинки на другую?

Создать объект Graphics из основной картинки через Graphics.FromImage(), нарисовать в нужном месте вторую картинку через Graphics.DrawImage().
...
Рейтинг: 0 / 0
Работа с BitMap
    #34026936
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круто ! Спасибо.

Скажите, а как можно отобразить картинку не в виде прямоугольника, а, скажем, овала ?




Здравствуйте, algol, Вы писали:

A>Здравствуйте, Аноним, Вы писали:

А>>Скажите, как мне сделать наложение одной картинки на другую?

A>Создать объект Graphics из основной картинки через Graphics.FromImage(), нарисовать в нужном месте вторую картинку через Graphics.DrawImage().
...
Рейтинг: 0 / 0
Работа с BitMap
    #34026998
algol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Аноним, Вы писали:

А>Скажите, а как можно отобразить картинку не в виде прямоугольника, а, скажем, овала ?

Например, создать новый GraphicsPath, добавить к нему эллипс — AddEllipse, задать clipping region через Graphics.SetClip(GraphicsPath), после чего нарисовать вторую картинку.
Или сначала изменить второй Bitmap, залив его прозрачным цветом вне овала.
...
Рейтинг: 0 / 0
Работа с BitMap
    #34027077
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасиб,
а такой способ годится для отображения картинки в виде овала на странице html?


Здравствуйте, algol, Вы писали:

A>Здравствуйте, Аноним, Вы писали:

А>>Скажите, а как можно отобразить картинку не в виде прямоугольника, а, скажем, овала ?

A>Например, создать новый GraphicsPath, добавить к нему эллипс — AddEllipse, задать clipping region через Graphics.SetClip(GraphicsPath), после чего нарисовать вторую картинку.
A>Или сначала изменить второй Bitmap, залив его прозрачным цветом вне овала.
...
Рейтинг: 0 / 0
Работа с BitMap
    #34027133
algol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Аноним, Вы писали:

А>а такой способ годится для отображения картинки в виде овала на странице html?

То есть нужно всю картинку отобразить в виде овала? Тогда наверное можно создать битмап по размерам исходного, залить прозрачным цветом (если сохранять в формате GIF или PNG поддерживающих прозрачность) или цветом фона (в остальных случаях), создать Graphics, эллиптический регион и отрисовать все изображение.
Если пишется только под IE, то можно сделать на клиенте фильтрами.
...
Рейтинг: 0 / 0
Работа с BitMap
    #34029774
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, algol, Вы писали:

A>Здравствуйте, Аноним, Вы писали:

А>>а такой способ годится для отображения картинки в виде овала на странице html?

A>То есть нужно всю картинку отобразить в виде овала? Тогда наверное можно создать битмап по размерам исходного, залить прозрачным цветом (если сохранять в формате GIF или PNG поддерживающих прозрачность) или цветом фона (в остальных случаях), создать Graphics, эллиптический регион и отрисовать все изображение.
A>Если пишется только под IE, то можно сделать на клиенте фильтрами.


Спасибо,
пишется не только под IE, а формат jpeg,
есть решение?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Работа с BitMap
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]