Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
moody_marauder
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 4
#1

Загрузка, изменение и сохранение изображений - Lazarus

14.12.2016, 17:07. Просмотров 620. Ответов 7

Доброго всем дня.
Пишу в lazarus программу, не вдаваясь в подробности - требуется выбрать изображение, произвести над ним некоторые манипуляции и сохранить результат.
Код:
Delphi
1
2
3
4
5
6
7
8
//выбор изображения
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
//для примера. допустим что x, y, r, g, b указываются в эдитах 
Image1.Canvas.Pixels[x,y] := RGBToColor(r, g, b);
//сохранение
if SavePictureDialog1.Execute then begin
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
И вроде бы все работает, но при сохранении сохраняется точно та же картинка, что была загружена, без всяких изменений. Что я делаю не так?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2016, 17:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Загрузка, изменение и сохранение изображений (Lazarus):

Загрузка изображений из каталога в ImageList
Задача: загрузить изображения из папки в ImageList для дальнейшей работы с ним....

Сохранение и загрузка
Нужно сделать сохранение и загрузку в программе. Я ни как не пойму как это...

Сохранение и загрузка ImageList
Нашел в ДРКБ такой код Попробовал. Запись удачно проходит, при загрузке...

Сохранение и загрузка TreeView
Народ, почему так получается. Есть файл 1.txt в нем записано что-то типа 11 ...

Сохранение в файл и загрузка из файла в классе
Здравствуйте. Не понимаю какой параметр нужно указать для описания процедуры...

Сохранение и изменение размера окна
Первая проблема состоит в том что когда в PaintBox1 что-то рисуеш а после меняю...

7
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
14.12.2016, 20:35 #2
Лучший ответ Сообщение было отмечено moody_marauder как решение

Решение

Pascal
1
Image1.Picture.Bitmap.Canvas.Pixels[x,y] := RGBToColor(r, g, b);
2
moody_marauder
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 4
15.12.2016, 17:35  [ТС] #3
Работает. Спасибо большое
0
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
09.02.2018, 13:40 #4
Попробовал вот это дело
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.MenuItem5Click(Sender: TObject);//загрузить схему
var
  PixF: TPixelFormat;
  x,y: integer;
begin
  OpenPictureDialog1.Title:='Открыть существующий файл';
  if OpenPictureDialog1.Execute then
  begin
    Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); // Загрузить файл в Image1.
    x:=Image1.Picture.Width;
    y:=Image1.Picture.Height;
    Image1.Picture.SaveToFile(opendirectory.FileName);
    //Image1.Width:=x;
    //Image1.Height:=y;
  end;
 
end;
Не получается, не знаю в каких вариантах можно исполнить подобное, нужно просто взять картинку и сохранить её в директории определённой программой (дирректории проекта созданного в ней).
Тем больше не нашёл, а создавать новую неохота, эта мне показалась самой подходящей.

Добавлено через 6 минут
Но там я ничего не меняю, мне надо сохранить как есть. Файловой переменой как значение изображения присвоить я не знаю - в учебниках нет по этому никакой инфы.

Добавлено через 19 минут
Вот такую ошибку выдает
Компиляция проекта, цель: project1.exe: Код завершения 1, ошибок: 1, предупреждений: 1, подсказок: 2
unit1.pas(67,42) Hint: Parameter "ASender" not used
unit1.pas(69,40) Hint: Parameter "ASender" not used
unit1.pas(313,3) Warning: Symbol "ForceDirectoriesUTF8" is deprecated: "Use the function in LazFileUtils unit"
unit1.pas(346,45) Error: Illegal qualifier
opendirectory-глобальная переменная, и она работает с другими окнами нормально.
0
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,644
Записей в блоге: 3
Завершенные тесты: 1
09.02.2018, 14:06 #5
Цитата Сообщение от Hretgir Посмотреть сообщение
нужно просто взять картинку и сохранить её в директории определённой программой (дирректории проекта созданного в ней).
по сути, Вам надо просто файл скопировать откуда-то в свою папку? Зачем его тогда куда-то грузить?
1
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
09.02.2018, 14:21 #6
Цитата Сообщение от D1973 Посмотреть сообщение
по сути, Вам надо просто файл скопировать откуда-то в свою папку? Зачем его тогда куда-то грузить?
а других команд не знаю, и найти не могу в инете. надо выбрать из диалогового окна файл, а командой программы скопировать в директорию указанную значением переменной.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
09.02.2018, 14:26 #7
Pascal
1
2
  if OpenPictureDialog1.Execute then
    CopyFile(OpenPictureDialog1.FileName, IncludeTrailingPathDelimiter(path) + ExtractFileName(OpenPictureDialog1.FileName));
(в path - название папки, куда нужно копировать файл. Функция CopyFile - из модуля FileUtil, если он еще не используется - нужно добавить его в Uses)
1
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
09.02.2018, 15:27 #8
Да спасибо, пойдёт и так, улучшайзинг будет если публике понравится, а мне и так пойдёт.
0
09.02.2018, 15:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2018, 15:27
Привет! Вот еще темы с решениями:

Сохранение данных из едитов и загрузка данных из файла
Здравствуйте! Задача следующего плана. У меня на форме 9 едитов, я ввожу в...

Загрузка и сохранение изображений.
Следующий код загружает и сохраняет изображение: BufferedImage image =...

PictureBox: загрузка и сохранение изображений
Всем привет! Я еще новичок в C#. Я создал программу, суть которой загрузить в...

Сохранение изображений на сервер. Их редактирование (изменение размера и веса)
Добрый день, подскажите, пожалуйста, кто знает , как мне при подгрузке...


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

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

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