DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wugangbest
今日帖子: 26
在线用户: 22
导航: 论坛 -> Web应用开发 斑竹:bodies  
作者:
男 luzhenwei (luzhenwei) ★☆☆☆☆ -
普通会员
2008/11/8 14:48:32
标题:
格式转换:怎么样将JPG图片转换成EMF格式的图片 浏览:3217
加入我的收藏
楼主: 请问怎样将JPG转换成EMF格式
----------------------------------------------
luzhenwei
作者:
男 onlyone10000 (onlyone10000) ★☆☆☆☆ -
盒子活跃会员
2008/11/8 16:18:08
1楼: Procedure ConvertBmpToEmf(Const BmpFile, WmfFile: String);
Var
  MetaFile: TMetaFile;
  MFCanvas: TMetaFileCanvas;
  BMP: TBitmap;
Begin
  {Create temps}
  MetaFile := TMetaFile.Create;
  BMP := TBitmap.create;
  BMP.LoadFromFile(BmpFile);
  MetaFile.Height := BMP.Height;
  MetaFile.Width := BMP.Width;
  MFCanvas := TMetafileCanvas.Create(MetaFile, 0);
  With MFCanvas Do
  Begin
    Draw(0, 0, BMP);
    Free;
  End;
  BMP.Free;
  With MetaFile Do
  Begin
    SaveToFile(WmfFile);
    Free;
  End;
End;

Procedure ConvertBmpToEmf(Var StmIn, StmOut: TStream); overload;
Var
  MetaFile: TMetaFile;
  MFCanvas: TMetaFileCanvas;
  BMP: TBitmap;
Begin
  MetaFile := TMetaFile.Create;
  BMP := TBitmap.create;
  BMP.LoadFromStream(StmIn);
  MetaFile.Height := BMP.Height;
  MetaFile.Width := BMP.Width;
  MFCanvas := TMetafileCanvas.Create(MetaFile, 0);
  With MFCanvas Do
  Begin
    Draw(0, 0, BMP);
    Free;
  End;
  BMP.Free;
  With MetaFile Do
  Begin
    SaveToStream(StmOut);
    Free;
  End;
End;
Procedure ConvertJPGToEmf(Const BmpFile, WmfFile: String); overload;
Var
  iss, oss1, oss2: TStream;
Begin
  Try
    iss := TFileStream.Create(BmpFile, fmOpenRead);
    oss1 := TMemoryStream.Create;
    ConvertJPGToBmp(iss, oss1);
    Oss2 := TFileStream.Create(WmfFile, fmCreate Or fmOpenWrite);
    oss1.Position := 0;
    convertBmpToEmf(oss1, oss2);
  Finally
    oss1.Free;
    oss2.Free;
    iss.Free;
  End;
End;

Procedure ConvertJPGToEmf(Var StmIn, StmOut: TStream); overload;
Var
  oss1: TStream;
Begin
  Try
    oss1 := TMemoryStream.Create;
    ConvertJPGToBmp(StmIn, oss1);
    oss1.Position := 0;
    convertBmpToEmf(oss1, StmOut);
  Finally
    oss1.Free;
  End;
End;

具体使用了哪些单元你自己加一下吧。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS