Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сохранить файл заранее указав место  (Прочитано 5714 раз)
0 Пользователей и 1 Гость смотрят эту тему.
highklass
Гость
« : 08-06-2008 19:02 » 

Код: (Delphi)
jpg := TJpegImage.Create;
jpg.Loadfromfile(OpenPictureDialog1.FileName);
if jpg.Height > jpg.Width then
scale := 50 / jpg.Height
else
scale := 50 / jpg.Width;
bmp:= Tbitmap.Create;
bmp.Width := 48;
bmp.Height:= 48;
bmp.Canvas.StretchDraw( bmp.Canvas.Cliprect, jpg );
jpg.Assign( bmp );
jpg.SaveToFile(ChangeFileext('C:\Temp\ntc\', '002.png'));
bmp.free;
jpg.free;end;

Нужно заранее прописать путь сохранения изображения и менять его в любое время не ограничиваясь лишь 'C:\Temp\ntc\'
 например в Edit?
Если заменить 'C:\Temp\ntc\' на Edit1.text то выдает ошибку и не сохраняет.
jpg.SaveToFile(ChangeFileext('C:\Temp\ntc\', '002.png'))?
Как по другому сохранить изображение?


Как сохранить картинку заранее указывая любую папку?
Записан
Sands
Помогающий

ua
Offline Offline

« Ответ #1 : 08-06-2008 19:42 » 

Я конечно не очень сильно шарю в делфи, однако, как мне кажется, ошибка ошибке рознь. Одно дело если ето при компиляции и может ругаться на несоответствие форматов требуемого и передаваемого параметров, другое дело уже при выполнении, там их вообще может быть немеряно. Какая конкретно ошибка выдается?
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #2 : 08-06-2008 20:31 » 

highklass, а путь в Edit1.Text ты правильно указываешь? Еще, обрати внимание на то что делает функция ChangeFileExt, для этого достаточно открыть хелп и пользуясь поиском найти описание данной функции.
Записан
DrGluck
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 09-06-2008 05:46 » 

А ты попробуй для сохранения тоже диалог применить, а из него FileName взять.
Это, имхо, логично будет, раз файл через OpenDialog открывается то и сохранять надо через SaveDialog.
« Последнее редактирование: 09-06-2008 05:57 от DrGluck » Записан

Good user - dead user
highklass
Гость
« Ответ #4 : 09-06-2008 06:54 » 

Код:
var sDir:string;
...
sDir := Edit1.Text;
if Length(sDir)=0 then begin
    // забыли ввести путь
end else begin
    if not(sDir[Length(sDir)] in ['\','/']) then sDir := sDir+'\';
    if ForceDirectories(sDir) then begin
        //путь создан, теперь сохраняем:
        jpg.SaveToFile(sDir+'001.jpg');
    end else begin
        // не удалось создать путь
    end;
end;

Все проблема решена.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines