Здравствуйте. Как мне сохранить любую картинку в файл?. Т.е открывается файл, в него загружается картинка и соответственно файл закрывается.
Так а картинка откуда берется?
C папки, скорее всего нужно путь указать?
Так а смысл в чем тогда, просто файл скопировать что ли?
В зависимости от варианта Паскаля может быть готовая функция типа CopyFile
Ну, типа всё, что есть в задании: Открыть файл (нетипизированный) в него сохранить картинку и закрыть.
А можно сделать, чтобы я сам выбирал, что за картинку загрузить. Т.е, чтобы я с клавиатуры вводил путь к файлу?
Видимо надо просто читать байты из одного файла и писать в другой.
А кто мешает? Путь это просто строка.
А как тогда эту картинку загрузить в файл, т.е из файла в файл.
var
f: file;
n: string;
begin
assign(f, 'C:\f.jpg');
rewrite(f);
write('Введите имя файла рисунка: ');
readln(n);
close(f);
end.
Так по ссылке ж пример прямо того, что нужно:
Работа с нетипизированными файлами на примере копирования файла:
const CountRead = 512; // кол-во читаемых записей. // При длине записи в 1 байт - размер буфера. var file_in, file_out: file; name1, name2: string; num_read, num_write: word; // фактич. считанные/записанные записи buf: array[1..CountRead] of char; // буфер begin Write('File 1: '); Readln(name1); Write('File 2: '); Readln(name2); Assign(file_in, name1); {$I-} Reset(file_in,1); {$I+} if IOResult <> 0 then begin WriteLn('Файл-оригинал не найден'); Halt end; Assign(file_out, name2); Rewrite(file_out, 1); // длина записи 1 байт repeat BlockRead(file_in, buf, CountRead, num_read); BlockWrite(file_out, buf, CountRead, num_write); until (num_read = 0) or (num_write <> num_read); writeln('Copying is completed'); if num_read <> num_write then writeln('Not enough space'); close(file_out); close(file_in); end.
Что такое Reset?
Почему мне пишет ошибку, что не известное имя blockRead нет?
Какой Паскаль?
Я нашёл иной вариант)
uses graphabc;
var n:string;
b:Picture;
begin
write ('Введите имя файла рисунка: ');
readln (n);
window.Clear;
b:=Picture.Create(n);
b.Draw(50,50);
SaveWindow('C:/Лб_7/1.png');
Window.Close
end.
Тут вряд ли это хотели раз просили