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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.11.2010, 10:19   #21
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
В чем конкретно некорректность?
Размеры TImage значально, до загрузки:
Код:
Image.Height := 160;
Image.Width := 280;
после выполнения функции:
Код:
Image.Height := ~180;
Image.Width := ~300;
победил так:
Код:
var
  Pic: TPicture;
begin
  if OpenPictureDialog.Execute then
  begin
    Pic := TPicture.Create;
    try
      try
        Pic.LoadFromFile(OpenPictureDialog.FileName);
        Image.Picture.Bitmap.Assign(Pic.Graphic);
        FitBestSize(Image);
        Image.Height := 160;
        Image.Width := 280;
      finally
        Pic.Free;
      end;
    except
      on E: EInvalidGraphic do
        ShowMessage('Ошибка загрузки');
      on E: EConvertError do
        ShowMessage('Ошибка конвертирования');
    else
      ShowMessage('Прочие ошибки: ' + #13 + Exception(ExceptObject).Message);
    end;
  end;
end;
XerSon вне форума
Старый 26.11.2010, 11:40   #22
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Зачем тогда нкжен FitBestSize(Image);
Sibedir вне форума
Старый 26.11.2010, 12:01   #23
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Зачем тогда нкжен FitBestSize(Image);
Заметьте, не я его предложил!
а нужен он, чтобы отмаштабировать картинку по ширине и высоте, без него в Image грузится только часть картинки!
XerSon вне форума
Старый 26.11.2010, 12:08   #24
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

В инспекторе объектов назначте Image1.Stretch и Image1.Proportional = True.
Цитата:
Заметьте, не я его предложил!
Прежде чам создавать говнокод потрудитесь вдуматься, что вы себе копируете в программу.

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

Цитата:
Сообщение от Sibedir Посмотреть сообщение
В инспекторе объектов назначте Image1.Stretch и Image1.Proportional = True.
Сами то проверяли? Результат тот же!
Цитата:
Сообщение от Sibedir Посмотреть сообщение
Прежде чам создавать говнокод потрудитесь вдуматься, что вы себе копируете в программу.
А вот это уже Аполитично! ...и он не мной создан, он мной воспроизведён, опять же заметьте, мною там только добавлено FitBestSize(Image); Так что не стоит так утверждать!

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

1. Вы хоть поняли, что делает FitBestSize?
2.
Цитата:
Сами то проверяли? Результат тот же!
Проверял что? Вы толком объясните, что хотите увидеть. А то подогнали размер имеджа под форму, потом опять его к старому размеру вернули. Зачем? Что вы пытаетесь сделать? Скажите, картинку каких размеров вы грузите, и что хотите получить в итоге.
3.
Цитата:
А вот это уже Аполитично!
Ни чего личного. Просто знайте: принцип copy-paste приводить к созданию говнокода.
4. img_project.zip

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

Легенда:
Код:
Image.Width := 280;
Image.Height := 160;
при загрузке в Image одного из графических форматов -
Код:
Pic.LoadFromFile(OpenPictureDialog.FileName);
не изменяя размеры Image, нужно конвертировать его в BitMap
Код:
Image.Picture.Bitmap.Assign(Pic.Graphic);
и загрузить в
Код:
 Image.Picture.Bitmap
отмаштабировать под размер клиентской области
Код:
FitBestSize(Image);
производим какие то действия с Bitmap'ом и сохраняем его только в Jpeg
Код:
Jpg.Assign(Image.Picture.Bitmap);
Jpg.SaveToFile(ChangeFileExt(SavePictureDialog.FileName, '.jpg'));
с размерами 280x160

Ваша рекомендация с В инспекторе объектов назначте Image1.Stretch и Image1.Proportional = True.

Растягивает клиентскую область Image, а мне этого не надо!!!

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

У Image нет клиентской области. Это так к стати. Но я вас понял тем не менее.

Я просил назвать габариты исходной картинки. Как если бы вы ее в ACDSee просматривали. Там 280х160 или 2800х1600.
Sibedir вне форума
Старый 26.11.2010, 13:43   #29
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

4. img_project.zip

Ну и? размеры Image становятся 260х180 - А должны быть 280х160

Об этом я писал еще выше!!!

Не зависимо от размера загружаемого изображения(1х1 или 1024х768), Image должен быть:
Код:
Image.Width := 280;
Image.Height := 160;
XerSon вне форума
Старый 26.11.2010, 13:51   #30
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

что то я не понимаю! если загружать изображение (1х1 или 1024х768) то происходит потеря основы самой картинки (другими словами она растягивается или сжимается).
Вам это нужно?

p.s. Более точный вопрос... Вам как нужно (пример оба рисунка 160*280)?
1) способом
01.jpg
2) способом
02.jpg
Помог, нажми весы слева

Последний раз редактировалось grafgrial; 26.11.2010 в 14:05.
grafgrial вне форума
Закрытая тема


Купить рекламу на форуме - 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