Помощь - Поиск - Пользователи - Календарь
Полная версия: "загрузка" изображения
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
suriv
вот сама прога:

uses wincrt,graph;
var
gd,gm,j,i:integer;
x,x1,y1,y:integer;
col:word;
c:char;
s:byte;
t:text;

procedure ex;
begin
assign(t,'log.txt');
append(t);
for x:=1 to getmaxx do
for y:=1 to getmaxy do
begin
col:=getpixel(x,y);
if col=0 then continue;
writeln(t,x,' ',y,' ',col);
flush(t);
end;
end;


begin
gd:=detect;
initgraph(gd,gm,'');
moveto(getmaxx div 2,getmaxy div 2);
s:=9;
repeat
x:=getx;
y:=gety;
c:=readkey;
case c of
'+':begin
inc(s);
circle(x,y,s);
end;
'-':begin
dec(s);
circle(x,y,s);
end;
'w':begin
moveto(x,y-1);
circle(x,y,s);
end;
's':begin
moveto(x,y+1);
circle(x,y,s);
end;
'a':begin
moveto(x-1,y);
circle(x,y,s);
end;
'd':begin
moveto(x+1,y);
circle(x,y,s);
end;
'r':setcolor(red);
'g':setcolor(green);
'b':setcolor(blue);
'h':setcolor(black);
'n':setcolor(white);
#27:ex;
'c':begin
cleardevice;
moveto(x,y);
end;
end;
until false;
readln;
end.


теперь другая прога которая "загружает" то что было сохранено:

uses crt,graph;
var
gd,gm:integer;
t:text;
s,x,y,col:string;
x1,y1:integer;
col1:word;
begin
clrscr;
gd:=detect;
initgraph(gd,gm,'');
assign(t,'log.txt');
reset(t);
while not eof(t) do
begin
readln(t,s);
x:=s[1]+s[2]+s[3];
val(x,x1);
y:=s[7]+s[8]+s[9];
val(y,y1);
col:=s[13]+s[14];
val(col,col1);
putpixel(x1,y1,col1);
end;
readln;
end.



когда "загружает" рисунок то нарушен цвет +иногда когда "рисунок" большой то ошибочно изображает его.

как сделать чтоб этого небыло ? huh.gif

в чём моя ошибка ? sad.gif
volvo
А что, сохранить в BMP (или PCX) формате уже нельзя? ;)
Обязательно свой велосипед придумать?
suriv
это мой маленький эксперемент... rolleyes.gif
не умею я пока с бмп и пцх работать...
помоги что у меня не так ? sad.gif
volvo
Я не знаю, что у тебя не так, для этого надо программу запускать... Я могу сказать, что можно попробовать изменить...
Например, почему TXT а не вот так, например:
Type
TPoint = record
X, Y, color: Word;
end;
var f: file of TPoint;

?
размер файла будет ГОРАЗДО меньше, да и быстрее выполнится сохранение и загрузка. Опять же исключаются ошибки при переводе из строки в число (как сохранял, так и прочтешь)...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.