有没有快速的从BMP生成JPEG文件的函数,用TJPEGIMAGE里面的COMPRESS太慢了,有没有快速的算法或函数?

解决方案 »

  1.   

    可以使用opencvcvLoadImage........cvSaveImage........这个转换速度应该很理想
      

  2.   

    //bmp转化为JPG
    BMPToJPG(BmpFilepath,BmpFileName,SizeNameJpgFilepath,SizeCodejpgFileName,jpgFileName:string;Flag:boolean=false);
    var
      Jpeg : TJPEGImage;
      Bmp : TBitmap;
      var
       Create:boolean;
    begin
    try
      if DirectoryExists(SizeNameJpgFilepath)=false then
      begin
        if ForceDirectories(SizeNameJpgFilepath)=false then
        begin
          SizeNameJpgFilepath:=SizeCodejpgFileName;
          ForceDirectories(SizeNameJpgFilepath);
        end;
      end;
      Bmp := TBitmap.Create;
      try
        Bmp.LoadFromFile(BmpFilepath+BmpFileName);
        Jpeg := TJPEGImage.Create;
        try
          Jpeg.Assign(Bmp);
          Jpeg.Compress;
          //保存图片
          Jpeg.SaveToFile(SizeNameJpgFilepath+jpgFileName);
        finally
          Jpeg.Free;
        end;
      finally
         Bmp.Free;
      end;
    except
    end;
      if Flag=true then
        DeleteFile(BmpFilepath+BmpFileName);
    end;//JPG文件转换为BMP文件,其中省略的部分只要将bmp文件创建与操作同JPG换过来,同上面的函数
    //差不多,只是写出来的那部分不一样
    JPGToBMP(BmpFilepath,BmpFileName,SizeNameJpgFilepath,SizeCodejpgFileName,jpgFileName:string;Flag:boolean=false);
    var
      Jpeg : TJPEGImage;
      Bmp : TBitmap;
      var
       Create:boolean;
    begin
    try
      ...
      try
        ...
        try
          ....
          Bmp.Assign(Jpeg);
          Bmp.Dormant;
          Bmp.FreeImage;
          //保存图片或者绘制图片
          ....
        finally
          
        end;
      finally
         ......
      end;
    except
    end;
      .......
    end;
      

  3.   

    intel 提供了个Dll, 叫 ijl20.dll, 应该很快, 试试看吧
      

  4.   

    to milky: 你有ijl20.dll这个文件吗?从哪里可以找到
    有没有相关的DELPHI的例子?
      

  5.   

    我在Google Earth 里面找到这个文件了,该如何使用?
    有例子吗?