我也想把jpg图片输出到报表中,可是QRDBIMAGE只能输出.BMP图片,不能输出.JPG的图片,QRIMAGE又只能输出一张图片,请问应该怎么实现.JPG图片的显示呢,在线等,很急,谢谢!

解决方案 »

  1.   

    可是我要保存的是.JPG图片阿,你的意思是保存的时候先转换图片的格式?怎么转换呢?
      

  2.   

    VAR
      S:STRING;
      st: TstringStream;
      Str:String;
      Jpeg:TJPEGIMAGE;
      bmp:TBitmap;   //存图像
    begin
        Str := ExtractFileExt(OpenP.filename);
        Str := lowercase(Copy(Str,2,3));
        Jpeg := TJPEGIMAGE.Create;
        bmp:=TBitmap.Create;
        if Str='bmp' then
        BEGIN
          bmp.LoadFromFile(OpenP.FileName);
        END
        else if Str='jpg' then
        begin
          Jpeg.LoadFromFile(OpenP.FileName);
          bmp.Assign(jpeg);
        end;
        if (str='bmp') or (str='jpg') then
        begin
        st := tstringstream.create('');
        bmp.SaveToStream(st);
        ADOQUERY3.FieldBYNAME('文件内容').AsString:= st.datastring;
        st.Free;
        end else APPLICATION.MessageBox('系统暂不能接受此种格式的图像!','林康软件',MB_OK+MB_ICONWARNING);
        jpeg.Free;
        bmp.Free;
        TRY
          ADOQUERY3.Post;
        EXCEPT
          ADOQUERY3.Cancel;
          APPLICATION.MessageBox('系统不能保存此条信息!','林康软件',MB_OK+MB_ICONWARNING);
        END;
      

  3.   

    OPENP 是OPENPICTUREDIALOG,你需要加 IF OPENPICTUREDIALOG.EXECUTE THEN 等...
      

  4.   

    JPG图片写入SQL数据库
    最好是采用文件流的形式
    var
     st: TstringStream;
     ft: TfileStream;
    begin
        ft:=TfileStream.create('d:/file.jpg',fmOpenRead);
        st := tstringstream.create('');
        st.copyform(ft,ft.size);
        ADOQUERY3.FieldBYNAME('文件内容').AsString:= st.datastring;
        st.Free;
       ....
    end;
      

  5.   

    谢谢lencon(深秋叙),可是我的图片是以stream文件流的形式保存的到SQL中,还有你给的代码是保存.jpg或.bmp图片,这个我已经实现了。现在我的问题是要在quickrep中显示我的图片集,哪位高手知道的给个例子阿,谢谢大家了!
      

  6.   

    直接用 DBIMAGE 连接显示