要求能够处理JPEG、GIF、PMG,最好还有其他格式
能不能自动制作图片的缩微图?

解决方案 »

  1.   

    一下这类文件格式的说明,比如说GIF格式,它的一开始就是GIF格式的标志GIF89a,接下来就是图片的宽度和高度信息,比如:
          47 49 46 38 39 61 B1 00 C2 01 F7 00 00 FF FF FF 
    就是一幅GIF图像的开始部分,其中47 49 46 38 39 61 为GIF89a的ASICII码,而其后的B1 00 就是宽度值(注意地位在前)177像素(ASICII码值为00B1),后面的就是高度值450像素(ASICII码值为01C2)。至于JPEG和PMG格式吗你可以自己去查,我就不写了。
         有了这些你就可以利用Seek函数和ReadBuffer来读取它了:
         var
           gifwidth,gifheight:integer;
           gif:TFileStream;
         begin
           gif:=...//取得GIF流
           gif.Sek(6,soFromBeginning);//从开始位置起第七八两个字节为宽度值
           gif.eadBuffer(gifwidth,2);//一次读两个字节
           gif.eadBuffer(gifheight,2);
           ...
        好了,到目前为止gifwidth,gifheight中的值即为图片的宽度和高度值了