我的意思就是流程还是一样,但不希望有临时文件产生,我还有一个想法就是能否直接 memorystream->jpg 这样转化?

解决方案 »

  1.   

    bmp2jpg
    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;
    jpg2bmp
    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.   

    uses JPEG ; 
    .......var
      MyJPEG : TJPEGImage;
      MyBMP : TBitmap;
    begin
       MyBMP := TBitmap.Create;
    with MyBMP do
     try
      LoadFromFile('C:\test.BMP');
      MyJPEG := TJPEGImage.Create;
      with MyJPEG do begin
        Assign(MyBMP);
        CompressionQuality:=75;
        Compress;
        SaveToFile('C:\www.JPEG');
        Free;
    end;
     finally
        Free;
     end;
    end;
      

  3.   

    利用ASSIGN,在Delphi中,在很多时候都可以用这个东西进行转换
      

  4.   

    我的程序的那个临时文件其实就是在MemoryStream产生的,在emorystream转换到tbitmap时能不能不产生临时文件,不能用image控件
      

  5.   

    TBitmap和TJpegImage都有LoadFromStream的方法。所以,你可以用
    Bitmap.LoadFromStream(yourmemoryStream); 得到Image内容,然后
    JpegImage.Assign(bitmap);
    反过来一样。