第一个代码是提取图片上任意多点的像数值(RGB),第二个是将GIF(由多张图片组成的动画)分解保存这些图片。我现在要的是可以像第一个代码一样,输入一个任意点的坐标,就可以得到GIF所有图片上该点的RGB(而不在是一张图片,所以得到的RGB的值的多少就看由多少张图片组成了的),然后保存在TXT里面,在输入另一个点的坐标,又能得到该点坐标下所有GIF的RGB,然后还是保存在同个TXT文件里面。只要我输入几个点坐标,就要保存这些点在GIF上的RGB。(记住,是要得到任意多点的RGB,例如GIF由10张图片组成,而我输入了三次点坐标,那么就要得到30个RGB的值,但是一般是有很多点,而不只是3个点)
unit Unit1; interface uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls; type 
  TForm1 = class(TForm) 
    Edit1: TEdit; 
    Edit2: TEdit; 
    Button1: TButton; 
    procedure Button1Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; var 
  Form1: TForm1; implementation {$R *.dfm} 
const BmpPath = 'C:\Temp\Test.bmp'; 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  bit: TBitmap; 
  clr: TColor; 
  X,Y:INTEGER; 
  pixels: TStrings; 
begin 
  X:=STRTOINT(EDIT1.TEXT); 
  Y:=STRTOINT(EDIT2.TEXT); 
  bit := TBitmap.Create; 
  bit.LoadFromFile(BmpPath);      {载入图片} 
  clr := bit.Canvas.Pixels[X,Y]; {获取第一像素的颜色值} 
  pixels:= TStringList.Create; 
  if FileExists('c:\temp.txt') then 
    pixels.LoadFromFile('c:\temp.txt'); 
  pixels.Add(IntToHex(clr, 0)); 
  pixels.SaveToFile('c:\temp.txt'); 
  pixels.Free; 
  bit.Free; end; end. 
第二个: 
procedure TForm1.Button1Click(Sender: TObject); 
var 
I, Count: Integer; 
Clsid: TClsid; 
Parameters: TEncoderParameters; 
Quality: Integer; 
Image: TGpImage; 
GUID: TGUID; 
begin 
// 打开图像文件 
if opendialog1.execute then 
Image := TGpImage.Create(opendialog1.filename); 
try 
// 获取图像所有帧维度的GUID,这里我们只取第一个 
Image.GetFrameDimensionsList(@GUID, 1); 
// 通过获取维度的GUID,取得图像的帧(页)数量 
Count := Image.GetFrameCount(GUID); 
// 下面设置自定义的编码参数,这里为1个参数 
Parameters.Count := 1; 
// 设置参数唯一标志的GUID,这里为编码品质 
Parameters.Parameter[0].Guid := EncoderQuality; 
// 设置参数值的数据类型为长整型 
Parameters.Parameter[0].ValueType := EncoderParameterValueTypeLong; 
Parameters.Parameter[0].NumberOfValues := 1; 
// 设置参数的值:品质等级,最高为100,图像文件大小与品质成正比 
Quality := 100; 
Parameters.Parameter[0].Value := @Quality; 
// 获取图像格式bmp编码器的ClsID 
GetEncoderClsid('image/bmp', Clsid); 
// 选择图像的各个帧为当前帧,并依次保存为bmp文件 
if savedialog1.execute then 
for I := 0 to Count - 1 do 
  begin 
Image.SelectActiveFrame(GUID, I); 
Image.Save(savedialog1.filename+IntToStr(I) + '.bmp', Clsid, @Parameters); 
  end; 
finally 
Image.Free; 
end; 
end;