Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DPI, как получить? 
V
    Опции темы
Moid
Дата 4.2.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



загружаю я в image изображение/ 
как узнать DPI?


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
PPS05
Дата 4.2.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Свойства HorizontalResolution и VerticalResolution ?


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
Moid
Дата 4.2.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



Вот что хотел:

Код

Graphics g = Graphics.FromImage(img);
            label2.Text = g.DpiX.ToString();



--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
PPS05
Дата 4.2.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Graphics.FromImage(img).DpiX и img.HorizontalResolution - одно и то же.


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
Moid
Дата 4.2.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



Проблема возникла такая с DPI:

Загружаю картинку в image c DPI(600/600)
делаю ей reisize так:
Код

Image img = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(img);
            g.InterpolationMode = InterpolationMode.Bilinear;
            g.DrawImage(image, new Rectangle(0, 0, width, height));
            return img;


сохраняю с новым размером, а DPI уменьшается, независимо от того увеличил я новое изображение или уменьшил.

Как решить эту проблему?


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
PPS05
Дата 4.2.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Дело в том, что в img надо ручками установить DPI (только ведь DrawImage делается и все). img просто не знает, какой dpi нужен (неоткуда). 

Да и джинн-модератор может сказать "Один топик - один вопрос!"

Это сообщение отредактировал(а) PPS05 - 4.2.2008, 17:18


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
Moid
Дата 4.2.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



Можно пример, на C# недавно пишу.


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
PPS05
Дата 4.2.2008, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Тривиально:

Код

img.HorizontalResolution = image.HorizontalResolution;
img.VerticalResolution = image.VerticalResolution;



--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
Moid
Дата 4.2.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



Так не работает говорит, что парамерт только для чтения.
сделал так:
Код

Bitmap bmp = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb);
bmp.SetResolution(600, 600);


все равно спасибо

Это сообщение отредактировал(а) Moid - 5.2.2008, 10:28


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
Moid
Дата 5.2.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



Код

Bitmap bmp = new Bitmap(img);
bmp.SetResolution(800, 800);


Что то мне подсказывает, что при таком методе как написано выше будет терряться исходное DPI. Загружается картинка с DPI по умолчанию 94, затем говорим , что DPI = 600, в результате качество изображения теряется.

Как сделать правильно (т.е. сначало битмапу сказать, что DPI = 600, а затем загрузить картинку)?
Проблема в програмной реализации(из-за недостатка опыта).
Пробовал так:
Код

//битмап должен создаваться обязательно таким способом, 
//т.к. в дальнейшем в него грузим в цикле различные имэйджи
Bitmap bmp = new Bitmap(1, 1); 
//тут идет цикл загрузки изображения
bmp.SetResolution(img_0.HorizontalResolution, img_0.VerticalResolution);//устанавливаем DPI равное загруженной картинке (600)
// ВОТ ТУТ ПРОБЛЕМА!!!
// КАК ПРАВИЛЬНО В БИТМАП ПОМЕСТИТЬ КАРТИНКУ? 
// МОЖНО НЕ В БИТМАП, А В IMAGE. КАК?
// ПРИ ЗАПИСИ РИСУНКА В БИТМАП ТЕРЯЕТСЯ DPI:

bmp = new Bitmap(img_0);


Это сообщение отредактировал(а) Moid - 5.2.2008, 14:23


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
Moid
Дата 5.2.2008, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



Народ помогите, срочно нужно.

как в битмап поместить картинку из Image? 
Я знаю только такой способ 
Код

bmp = new Bitmap(img_0);

в данном случае он не подходит.


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
mr.DUDA
Дата 6.2.2008, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Типа того:
Код
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        Bitmap bmpOrig = (Bitmap)Bitmap.FromFile(@"c:\1.bmp");

        Bitmap bmpNew = new Bitmap(bmpOrig);
        bmpNew.SetResolution(600, 600);

        using (Graphics gr = Graphics.FromImage(bmpNew))
        {
            gr.DrawImage(bmpOrig, Point.Empty);
        }

        bmpNew.Save(@"c:\2.bmp");
    }
}

Но никакие шаманские пляски с DPI не улучшат качество!


--------------------
user posted image
PM MAIL WWW   Вверх
Moid
Дата 6.2.2008, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



Thanks,
Улучшать качество мне не нужно, цель - не хуже чем было.


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.