JPG格式怎么存?
菜鸟请教了!

解决方案 »

  1.   

    楼上的老兄呀,用jpg格式,才能压缩多少呀,我这个默认值就能压100倍!
      

  2.   

    unit zipfunc;
    {
    压缩解压单元作者:fontain 日期:2002.2.9功能:
         compressstream:从指定流中压缩内容,结果存到指定文件和原流
         uncompressfile: 从指定文件解压,结果存到指定流
    使用单元:zlib,classes,Sysutils;
    }
    interface
    uses zlib,classes,Sysutils;
    Function CompressToFile(var CompressedStream: TMemoryStream;const filename:string):boolean;
    function UnCompressFromFile(const filename:string;var res: TMemoryStream):boolean;
    implementation
    Function CompressToFile(var CompressedStream: TMemoryStream;const filename:string):boolean;
    var
      SourceStream: TCompressionStream;
      DestStream: TMemoryStream;
      Count: Integer;
    Begin
        //获得数据流的原始尺寸
        result:=false;
        Count := CompressedStream.Size;
        DestStream := TMemoryStream.Create;
        SourceStream:=TCompressionStream.Create(clDefault, DestStream);
        Try
          //SourceStream中保存着原始的数据流
          CompressedStream.SaveToStream(SourceStream);
          //将原始数据流进行压缩, DestStream中保存着压缩后的数据流
          SourceStream.Free;
          CompressedStream.Clear;
          //写入原始数据流尺寸
          CompressedStream.WriteBuffer(Count, SizeOf(Count));
          //写入经过压缩的数据流
          CompressedStream.CopyFrom(DestStream, 0);
          CompressedStream.SaveToFile(filename);
          result:=true;
        finally
          DestStream.Free;
        end;
    end;function UnCompressFromFile(const filename: string;var res: TMemoryStream):boolean;
    //解压缩文件数据流
    var
      SourceStream: TDecompressionStream;
      Buffer: PChar;
      Count: Integer;
      CompressedStream:TFileStream;
    Begin
      result:=false;
      //从被压缩的数据流中读出原始数据流尺寸
      CompressedStream:=TFileStream.Create(filename,fmOpenRead);
      CompressedStream.ReadBuffer(Count, SizeOf(Count));
      //根据数据流尺寸大小为将要读入的原始数据流分配内存块
      GetMem(Buffer, Count);
      SourceStream := TDecompressionStream.Create(CompressedStream);
      Try
        //将被压缩的数据流解压缩,然后存入 Buffer内存块中
        SourceStream.readBuffer(Buffer^, Count);
        //将原始数据流保存至res流中
        res.writeBuffer(Buffer^, Count);
        res.Position := 0;//复位流指针
        result:=true;
      finally
        FreeMem(Buffer);
        CompressedStream.Free;
      end;
    end;end.
      

  3.   

    to 40Star(陪你去看--☆流星雨★) 
    uses graphics,jpeg,......;
    .....
    var a:TBitMap;
        b:TjpegImage;
    begin
        a:=TBitMap.Create;
        b:=TJpegImage.Create;
        a.LoadFromFile('e:\aa.bmp');
        b.Assign(a);
        b.SaveToFile('e:\kk.jpg');
        a.free;
        b.free;
    end;
      

  4.   

    to: fontain
    代码在exe中执行没问题但原样移植到dll就出错,各位看看怎么回事?
    ...
    b.Assign(a);   //出错句
    ...