Naderenator
شنبه 02 دی 1391, 01:03 صبح
سلام
من کد زیر را برای کاری که در عنوان گفتم نوشتم ابتدا به تعداد فریم های فایل gif کنترل Timage روی فرم میسازم بعد تصویر هر فرم را لود می کنم و در آخر هم با چنده حلقه می ریزم تو آرایه دو بعدی تا اینجا هیچ مشکلی نیست تا زمانی که می خوام تو فایل باینری ذخیره کنم که نمی دونم کد درست کار می کنه یا نه ؟ مخصوصا خط 32 که نمی دونم باید جای 100 چی بزارم دوستان اگه اطلاعاتی دارن خواهشن دریغ نفرمایید.
procedure TForm1.Button1Click(Sender: TObject);
var
myFile : File;
Count,I,x,y,z:Integer;
gif: TGifImage;
Matrix: array of array of Integer;
begin
if OpenPictureDialog1.Execute then begin
gif := TGifImage.Create;
gif.Loadfromfile(OpenPictureDialog1.FileName);
Count := gif.Images.Count;
for I := 0 to Count-1 do begin
with TImage.Create(Self) do begin
width:=gif.width;
Height:=gif.Height;
Parent:=GroupBox1;
Top:=i*20+20;
Left:= i*130;
Picture.Assign(gif.Images.Frames[I].Bitmap);
end;
end;
for I := 0 to Count-1 do
begin
SetLength(Matrix, gif.Height,gif.width*Count);
for x := 0 to gif.Height-1 do
for y := 0 to gif.width*Count-1 do
Matrix[x,y]:= gif.Images.Frames[I].Bitmap.Canvas.Pixels[X,Y] ;
end;
AssignFile(myFile, 'Test.bin');
ReWrite(myFile);
for x := 0 to gif.Height-1 do
for y := 0 to gif.width*Count-1 do
BlockWrite(myFile, Matrix[x,y],100);
CloseFile(myFile);
end;
end;
من کد زیر را برای کاری که در عنوان گفتم نوشتم ابتدا به تعداد فریم های فایل gif کنترل Timage روی فرم میسازم بعد تصویر هر فرم را لود می کنم و در آخر هم با چنده حلقه می ریزم تو آرایه دو بعدی تا اینجا هیچ مشکلی نیست تا زمانی که می خوام تو فایل باینری ذخیره کنم که نمی دونم کد درست کار می کنه یا نه ؟ مخصوصا خط 32 که نمی دونم باید جای 100 چی بزارم دوستان اگه اطلاعاتی دارن خواهشن دریغ نفرمایید.
procedure TForm1.Button1Click(Sender: TObject);
var
myFile : File;
Count,I,x,y,z:Integer;
gif: TGifImage;
Matrix: array of array of Integer;
begin
if OpenPictureDialog1.Execute then begin
gif := TGifImage.Create;
gif.Loadfromfile(OpenPictureDialog1.FileName);
Count := gif.Images.Count;
for I := 0 to Count-1 do begin
with TImage.Create(Self) do begin
width:=gif.width;
Height:=gif.Height;
Parent:=GroupBox1;
Top:=i*20+20;
Left:= i*130;
Picture.Assign(gif.Images.Frames[I].Bitmap);
end;
end;
for I := 0 to Count-1 do
begin
SetLength(Matrix, gif.Height,gif.width*Count);
for x := 0 to gif.Height-1 do
for y := 0 to gif.width*Count-1 do
Matrix[x,y]:= gif.Images.Frames[I].Bitmap.Canvas.Pixels[X,Y] ;
end;
AssignFile(myFile, 'Test.bin');
ReWrite(myFile);
for x := 0 to gif.Height-1 do
for y := 0 to gif.width*Count-1 do
BlockWrite(myFile, Matrix[x,y],100);
CloseFile(myFile);
end;
end;