目前要实现个功能,就是要在用photo处理过的图片,用程序往上面打上文字,而不
影响图片的质量,比如说大小和分辨率、颜色等。高手快来呀。

解决方案 »

  1.   

    在图片控件上放置几个Tlabel,分别写上文字就可以了
      

  2.   

    如何在Jpg图像上写上字?  
     
    A:这里有个代码。  
     
    hmm,  here's  a  sample  with  help  of  Bitmap,  you  can  chance  the  brush  style  of  canvas  to  bsClear  to  make  the  text  transparent    
     
     
    uses  
     Jpeg;  
     
    procedure  TForm1.Button1Click(Sender:  TObject);  
    var  
     Bmp  :  TBitmap;  
     Jpg  :  TJpegImage;  
    begin  
     try  
         Bmp  :=  TBitmap.Create;  
         Jpg  :=  TjpegImage.Create;  
         Jpg.LoadFromFile('c:\img.jpg');  
         Bmp.Assign(Jpg);  
         Bmp.Canvas.Brush.Style  :=  bsClear;  
         Bmp.Canvas.Font.Color  :=  clYellow;  
         Bmp.Canvas.TextOut(10,10,'Hello  World');  
         Jpg.Assign(Bmp);  
         Jpg.SaveToFile('c:\img2.jpg');  
     finally  
         bmp.Free;  
         jpg.Free;  
     end;  
    end;  
      

  3.   

    Bmp.Assign(Jpg); ------ 这样的话图片的质量就不行了。
      

  4.   

    加载到BMP时可以按照源图片大小加载,然后按照 jinjazz(近身剪(N-P攻略)) 方法处理
    JPG转BMP损失质量不多
      

  5.   

    分析一下JPEG的格式,把与质量有关的数据读出来,然后转换成BMP写字,然后在转换成JPEG,保存前可以用:  
      jpeg.CompressionQuality;
      jpeg.Grayscale;
      jpeg.PixelFormat;
      jpeg.Compress;
      jpeg.Smoothing;
    这些东西设置一下JPEG的格式.但JPEG转BMP,BMP转JPEG都是有损的,想完全一致是不可能的;
    如果你想完全无损的在JPEG上写字,那么建议你仔细研究一下JPEG格式,然后直接修改图片文件;
      

  6.   

    如何在Jpg图像上写上字 
    提交日期:2004-4-11  
     
    关键词:JPG 图像  下面是个示例代码,你也可以将Canvas的brush style设置成bsClear,使得文本具有透明效果。uses
     Jpeg;procedure TForm1.Button1Click(Sender: TObject);
    var
     Bmp : TBitmap;
     Jpg : TJpegImage;
    begin
     try
       Bmp := TBitmap.Create;
       Jpg := TjpegImage.Create;
       Jpg.LoadFromFile('c:\img.jpg');
       Bmp.Assign(Jpg);
       Bmp.Canvas.Brush.Style := bsClear;
       Bmp.Canvas.Font.Color := clYellow;
       Bmp.Canvas.TextOut(10,10,'Hello World');
       Jpg.Assign(Bmp);
       Jpg.SaveToFile('c:\img2.jpg');
     finally
       bmp.Free;
       jpg.Free;
     end;
    end;
     
      

  7.   

    先声明一下:
      Bmp.Assign(Jpg); 这样的方式都不行。我现在就是这么做的。客户不满意。
      这样影响了图片的质量了。同志们,快帮忙呀。
      

  8.   

    你可以用UE对比一下更改前后的JPEG图片,或许能看出一点什么...
      

  9.   

    begin  
       p:=Tpicture.Create ;
       try              
        openpicturedialog1.Execute;
        if openpicturedialog1.FileName<>'' then
        begin
        p.LoadFromFile(openpicturedialog1.filename);
         image1.Canvas.Draw(0,0,p.graphic);
       end;
       finally ;
        p.free;
        end;
      

  10.   

    同意楼上的,bmp和jpg互转肯定有损失的,要写字当然要先转成bmp了,jpg上不能直接写字,在jpg.assign(bmp)前好像有个设置jpg压缩率的东东,具体是哪个忘了
      

  11.   

    先把JPG转换成BMP,加完字后再转过来