Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 11:45   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию Как в Image.Picture.Bitmap загрузить и отмаштабировать bmp jpg png картинки?

Собственно сабж.

Если можно то с примером!

Маштабирую под клиентскую область так:

Код:
Stretch:=True;

Последний раз редактировалось XerSon; 26.11.2010 в 07:13.
XerSon вне форума
Старый 25.11.2010, 14:09   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Код:
    Image1.Picture.LoadFromFile (FileName);
Для png (я так понимаю именно он имелся в виду под pnp) в Delphi7 нужно скачать соответствующие модули.

Последний раз редактировалось mihali4; 25.11.2010 в 15:10.
Sibedir вне форума
Старый 25.11.2010, 21:20   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
  Image.AutoSize:=False;
  Image.Proportional:=True;
  Image.Stretch:=True;
  try
    Image.Picture.LoadFromFile(<имя файла>);
  except
    Exit; //или что-то в этом роде
  end;
  Image.Width:=ClientWidth-Image.Left;
  Image.Height:=ClientHeight-Image.Top;
Должно сработать. Для jpg в Delphi 7 есть юнит JPeg.pas (если не напутал). Для png ищи в интернете. Достаточно имена юнитов вставить в uses
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 25.11.2010 в 21:23.
Аватар вне форума
Старый 25.11.2010, 22:12   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Ну... Конкретно в Image.Picture.Bitmap вы можете загружать только bmp...
А вот Image.Picture может содержать потомка класса TGraphic (Image1.Picture.Assign( <...> );): например TPNGObject, уже в который можно запихивать png-картинки (модуль PNGImage, он включён в Делфи начиная со смены владельцев с Борланд на Embercadero)...

А LoadFromFile вроде автоматически подбирает из доступных (тех что в Uses есть)...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума
Старый 26.11.2010, 03:53   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Да, точно. Совсем забыл сказать. Для jpg в uses нужно добавить Jpeg. И для png есть свой модуль в нэте.
Sibedir вне форума
Старый 26.11.2010, 06:40   #6
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Ну... Конкретно в Image.Picture.Bitmap вы можете загружать только bmp...
А LoadFromFile вроде автоматически подбирает из доступных (тех что в Uses есть)...
Парни, как отдельно грузить bmp jpg pnp в TImage мне известно!

Среда D2009

А вопрос был именно о Image.Picture.Bitmap и как при выборе того или иного формата, загрузить, конвертировать, отмаштабировать его в BitMap?
XerSon вне форума
Старый 26.11.2010, 07:19   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Тоже не сложно
Код:
var
  JPG: TJPEGImage;
begin
  if OpenPictureDialog1.Execute then begin
    JPG := TJPEGImage.Create;
    JPG.LoadFromFile (OpenPictureDialog1.FileName);

    Image1.Picture.Bitmap.Assign (JPG);

    JPG.Free;
  end;
end;
Задавайте вопрос конкретнее. "Как в Bitmap загрузить Jpeg". А Image всех только с толку сбил.
Sibedir вне форума
Старый 26.11.2010, 07:36   #8
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Задавайте вопрос конкретнее. "Как в Bitmap загрузить Jpeg". А Image всех только с толку сбил.
Спс за корректировку вопроса, а для png нет примера?
И как это правильно оформить в коде, в функции, процедуре, чтоб при выборе любого из трёх форматов, результат был в Image1.Picture.Bitmap? + с обработкой исключений!
XerSon вне форума
Старый 26.11.2010, 07:46   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Цитата:
а для png нет примера?
Тоже самое, только модуль скачай и подключи.

Цитата:
как это правильно оформить в коде, в функции, процедуре, чтоб при выборе любого из трёх форматов, результат был в Image1.Picture.Bitmap? + с обработкой исключений!
Код:
var
  Pic: TPicture;
begin
  if OpenPictureDialog1.Execute then begin
    Pic := TPicture.Create;
    try
      Pic.LoadFromFile (OpenPictureDialog1.FileName);
      Image1.Picture.Bitmap.Assign (Pic.Graphic);
      Pic.Free;
    except
      on E: EInvalidGraphic do ShowMessage ('Ошибка загрузки');
      on E: EConvertError do ShowMessage ('Ошибка конвертирования');
      else ShowMessage ('Прочие ошибки: ' + #13 + Exception(ExceptObject).Message);
    end;
  end;
end;

Последний раз редактировалось Sibedir; 26.11.2010 в 08:01.
Sibedir вне форума
Старый 26.11.2010, 08:06   #10
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Sibedir

понятно, спс!

Но если я гружу в Image картинку большего размера, то он растягиваеться под размер картинки, что не есть гут, как Любую загружаемую картинку, подогнать под размер Image, предварительно отмаштабировать?
XerSon вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить цвет пикселя из картинки jpg,не конвертируя в bmp?? Dima_Dima Общие вопросы Delphi 3 27.05.2010 10:49
как в jpg узнать цвет пикселя без конвертирования в bmp? ????????????????? Dima_Dima Помощь студентам 0 26.05.2010 18:51
Как получить доступ к пикселям jpg без конвертирования в bmp Dima_Dima Общие вопросы Delphi 0 26.05.2010 16:35