因为要用Listview显示图片的缩略图,而ImageList只能用bmp格式的,所以需要将jpg文件先转换成bmp,然后再显示,jpg转换成bmp的函数如下,一张3M多的数码照片转换起来明显感觉到有些慢,如果照片多了速度就会非常慢,有没有好一点的办法可以提高速度?谢谢!
  jpgFile := TJpgImage.Create;
  bmpFile := TBitmap.Create;
  try
    jpgFile.LoadFromFile(JpgFileName);
    bmpFile.Assign(jpgFile);
   except   end;

解决方案 »

  1.   

    var
      MyJpeg: TJpegImage;
      Image1: TImage;
    begin
      Image1:= TImage.Create(self);
      MyJpeg:= TJpegImage.Create;
      Image1.Picture.Bitmap.LoadFromFile('c:\windows\desktop\aa.BMP');  // Load the Bitmap from a file
      MyJpeg.Assign(Image1.Picture.Bitmap);  // Assign the BitMap to MyJpeg object
      MyJpeg.CompressionQuality:=StrToInt('75');
      MyJpeg.Compress;
      MyJpeg.SaveToFile('c:\windows\desktop\test.JPG'); // Save the JPEG to Disk
    end;var
      MyJpeg: TJpegImage;
      bmp: Tbitmap;
    begin
      bmp:=tbitmap.Create;
      MyJpeg:= TJpegImage.Create;
      myjpeg.LoadFromFile('c:\windows\desktop\aa.jpg');
      bmp.Assign(myjpeg);
      bmp.SaveToFile('c:\windows\desktop\test.bmp'); // Save the JPEG to Disk
    end;
      

  2.   

    ImageList用32*32象素就够啦,转换中把图片改小看看会不会节省时间
      

  3.   

    想了解jpeg格式,访问 http://www.jpeg.org/
      

  4.   

    建议像Windows资源管理器的(Thumbs.db)一样,建立个缩略图缓存文件
      

  5.   

    问题是有一些jpg文件读不出缩略图,所以只好先转换成bmp格式再显示。问题出在从jpg转换到bmp的过程非常慢。