Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
иван2000
0 / 0 / 0
Регистрация: 06.10.2017
Сообщений: 10
1

Как сделать загрузку изображения сразу же после его конвертации из jpeg в bmp?

06.10.2017, 13:19. Просмотров 394. Ответов 4
Метки нет (Все метки)

Добрый день пользователи.Можно ли после конвертации изображения, сразу же загрузку изображения на форму.И еще не подскажете как при выборе изображения, растровое изображение не конверктировалось в растровое?Пока все что получилось

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure Tz.N3Click(Sender: TObject); 
 
begin 
if OpenDialog1.Execute then 
begin 
Edit3.Text:=OpenDialog1.FileName ; 
JPEGtoBMP (OpenDialog1.FileName)  
end 
else 
exit; 
end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure Tz.JPEGtoBMP(const FileName: TFileName); 
var 
jpeg: TJPEGImage; 
bmp: TBitmap; 
begin 
jpeg := TJPEGImage.Create; 
try 
jpeg.CompressionQuality := 100; {Default Value} 
jpeg.LoadFromFile(FileName); 
bmp := TBitmap.Create; 
try 
bmp.Assign(jpeg); 
bmp.SaveTofile(ChangeFileExt(FileName, '.bmp')); 
finally 
bmp.Free 
end; 
finally 
jpeg.Free 
end; 
end;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2017, 13:19
Ответы с готовыми решениями:

Сжатие и расжатие изображения .bmp благодаря алгоритмам JPEG/JPEG2000
Доброго времени суток! У меня по сути есть программа в которой открывается изображение формата BMP...

Как в Adobe dreamweaver cs6 сделать автоматическое размещение файла по FTP сразу после его сохранения?
Как в Adobe dreamweaver cs6 сделать автоматическое размещение файлов по FTP сразу после их...

Как загружать/запрещать загрузку своих приложений сразу после включения компа?
Как моно програмно загружать свои приложения сразу после включения компа и соответственно отключать...

Resize JPEG, BMP, GIF, PNG --> JPEG
Доброго дня! Стала задача сделать ресайзер. Требования: картинка по соотношению вес/качество...

Как после установки сделать загрузку с жёсткого диска?
Захотелось приобщиться к arch. Пошел из далека:по гуглив наткнулся на manjaro - интересный...

4
Animalia
224 / 79 / 35
Регистрация: 01.04.2017
Сообщений: 182
06.10.2017, 17:05 2
Да что за помешательство началось?
Зачем все это делать руками, когда есть уже готовые компоненты?

Если на форму, то должен быть TImage, так? Ну и напишите
Delphi
1
2
3
4
5
if OpenDialog1.Execute then 
begin 
  Edit3.Text:=OpenDialog1.FileName ; 
  Image1.Picture.LoadFromFile(OpenDialog1.FileName);
end
Если нужно загрузить в невизуальный обьект, чтоб работать с ним в памяти то
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses
  Graphics, Jpeg, pngimage, GIFImg
...
var
  Picture: TPicture;
begin
  try
    Picture := TPicture.Create;
    Picture.LoadFromFile(OpenDialog1.FileName);
    Picture.Bitmap// и тут понеслось
 
  finally
    Picture.Free;
  end;
end;
Никаких преобразований, сохранений и плясок с бубном вокруг TJPEGImage.
1
иван2000
0 / 0 / 0
Регистрация: 06.10.2017
Сообщений: 10
08.10.2017, 17:22  [ТС] 3
Animalia, про такую вещь знаю)
Delphi
1
Image1.Picture.LoadFromFile(OpenDialog1.FileName)
но разве FileName содержится адрес не на изображение до конвертации?
Дело в том что я пытаюсь создать программу для выделения краев изображения, и там вроде надо работать c TBitmap, для этого и преобразую, ну и соответственно я должен на экране видеть изображение до и изображение после. При таком условии какое вы предлагаете получится желаемый результат?
0
Animalia
224 / 79 / 35
Регистрация: 01.04.2017
Сообщений: 182
08.10.2017, 22:39 4
То что вам надо работать с TBitmap не означает что надо открывать .bmp файл.
Любой файл растровой графики после открытия по факту Bitmap - поле заданной ширины и высоты, и каждая ячейка этого поля это некий цвет.
Да, всякие там jpeg, png и пр. сжимают исходный Bitmap разными методами, но к сути это мало относится.
Цитата Сообщение от иван2000 Посмотреть сообщение
я должен на экране видеть изображение до и изображение после
Вариант первый - два TImage (у вас я так полагаю их итак два), и в оба LoadFromFile(OpenDialog1.FileName), со вторым работаем, а первый для красоты образца.
Вариант второй - в первый Image1.Picture.LoadFromFile(OpenDialog1.FileName) а во второй запихиваем динамически созданный TBitmap
Delphi
1
2
3
4
5
6
7
8
9
10
var
  bm: tbitmap;
begin
  bm := tbitmap.Create;
  bm.Height:= image1.Picture.Bitmap.Height;
  bm.Width:= image1.Picture.Bitmap.Width;
  //тут вызов функции/процедуры выделения краев
  image2.Picture.Bitmap.Assign(bm);
  bm.Free;
end;
Тут уже как удобнее. Но как правило из первого мы читаем, а во второй пишем, и не особо важно какой метод обработки: ядром свертки, разреженной маской или разбитием на графы. А раз второй TBitmap нам предстоит полностью перезаписать, то динамическое создание лично мне больше нравится, а вот что примените вы это уже вам решать.
1
northener
пофигист широкого профиля
3458 / 2352 / 639
Регистрация: 15.07.2013
Сообщений: 14,029
09.10.2017, 02:19 5
Цитата Сообщение от иван2000 Посмотреть сообщение
но разве FileName содержится адрес не на изображение до конвертации?
А изображение до конвертации просто не существует. JPEG-файл это просто упакованный архив неких данных.
0
09.10.2017, 02:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2017, 02:19

Как проверить открыт jpeg или bmp?
пишу на делфи лабу по обрабтке изображений procedure TForm2.N2Click(Sender: TObject); //Открыть...

Как dll, jpeg, bmp, txt упаковать в один exe
Привет! Помогите разобраться со сборкой в один exe? Например, для test.exe требуется test.dll ,...

Не воспроизводится видео после его конвертации из .MOV
Здравствуйте уважаемые пользователи данного форума! К варианту задать вопрос на сайте,я оставлял...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru