请问如何将一幅jpg图片转换成wmf格式,当然是用delphi编程实现 请问如何将一幅jpg图片转换成wmf格式,当然是用delphi编程实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WMF可是矢量图~~~这可不是了解两种图形格式就能完成的工作~~~想达到一定的速度和一定的效果并不容易~~~ jpg到bmp,然后bmp到wmf其实直接写jpg到wmf也一样,你自己研究一下吧jpg2bmpuses jpeg........ Jpg:=Tjpegimage.Create; bmp:Tbitmap.create; try Jpg.LoadFromFile(FileName); except Jpg.Free; Exit; end; Bmp.Width:=Jpg.Width; Bmp.Height:=Jpg.Height; Bmp.Canvas.Draw(0,0,Jpg); Jpg.Free; bmp.SaveToFile(...); bmp.free bmp2wmf{用命令行dcc -cc bmp2wmf.dpr编译,或设置"生成控制台程序"编译项在IDE中编译。生成的程序只能在win95的DOS窗口中使用。}program bmp2wmf;uses Graphics, SysUtils;const SoftWareName = 'File Convert[BMP&WMF/EMF] Tool Ver1.0,'; CompanyName = 'copyright(c) 1994,98 Keenvim software'; Width = 80 - Length(SoftWareName);var aBmp : Tbitmap; aWmf : TMetaFile; param1 : String; paramExt : String;begin Write(SoftWareName,CompanyName:Width); Writeln('By Mr. Aiming Zhou.'); Writeln; if ParamCount >= 1 then begin param1 := UpperCase(ParamStr(1)); paramExt := ExtractFileExt(param1); end; if (ParamCount < 1) or (ParamCount > 2) or ((ParamCount = 2) and (UpperCase(ParamStr(2)) <> '/E')) or ((paramExt <> '.BMP') and (paramExt <> '.WMF') and (paramExt <> '.EMF')) then begin writeln('ERROR: Param Invalid!'); writeln('Usage: Bmp2Wmf <.Bmp/.Wmf> [/E]'); writeln('notes: Param [/E] Define ouput .EMF File format.'); exit; end; aBmp := Tbitmap.Create; aWmf := TMetaFile.Create; if paramExt = '.BMP' then begin aBmp.LoadFromFile(param1); aWmf.Width := aBmp.Width; aWmf.Height := aBmp.Height; if ParamCount = 2 then aWmf.Enhanced := true else aWmf.Enhanced := false; with TMetaFileCanvas.CreateWithComment( aWmf,0,'Aiming''s Conver program','V1.0') do Try Draw(0,0,aBmp); Finally Free; end; if aWmf.Enhanced then aWmf.SaveToFile(copy(param1,1,pos('.',param1)) + 'EMF') else aWmf.SaveToFile(copy(param1,1,pos('.',param1)) + 'WMF'); if aWmf.Enhanced then writeln(param1, '==>', copy(param1,1,pos('.',param1)) + 'EMF', #$0D) else writeln(param1, '==>', copy(param1,1,pos('.',param1)) + 'WMF', #$0D); end else begin aWmf.LoadFromFile(param1); aBmp.Width := aWmf.Width; aBmp.Height := aWmf.Height; aBmp.Canvas.Draw(0,0,aWmf); aBmp.SaveToFile(copy(param1,1,pos('.',param1)) + 'BMP'); writeln(param1, '==>', copy(param1,1,pos('.',param1)) + 'EMF', #$0D); end; aBmp.Destroy; aWmf.Destroy;end. 无聊,散2分 字串變函數? Null怎么用不了? 怎样在一个窗体的onactive中判断不满足条件时关闭窗体自己! 关于用DELPHI实现XP 风格的问题???? vcshcn(黑色的星星)领分 关于浏览文件夹 谁有中文版的winapi,给我寄一份哦!有分送哦! 编程至尊宝同志你可以发给vickly的书能不能发一份给我?在这里谢过了([email protected]) 如何使delphi的stack变得大大的!! 怎样截取这个字符串取出想要的内容? 招聘软件工程师 地点:深圳罗湖
uses jpeg....
.... Jpg:=Tjpegimage.Create;
bmp:Tbitmap.create;
try
Jpg.LoadFromFile(FileName);
except
Jpg.Free;
Exit;
end;
Bmp.Width:=Jpg.Width;
Bmp.Height:=Jpg.Height;
Bmp.Canvas.Draw(0,0,Jpg);
Jpg.Free;
bmp.SaveToFile(...);
bmp.free bmp2wmf{用命令行dcc -cc bmp2wmf.dpr编译,或设置"生成控制台程序"编译项
在IDE中编译。生成的程序只能在win95的DOS窗口中使用。}
program bmp2wmf;
uses
Graphics, SysUtils;const SoftWareName = 'File Convert[BMP&WMF/EMF] Tool Ver1.0,';
CompanyName = 'copyright(c) 1994,98 Keenvim software';
Width = 80 - Length(SoftWareName);
var aBmp : Tbitmap;
aWmf : TMetaFile;
param1 : String;
paramExt : String;begin
Write(SoftWareName,CompanyName:Width);
Writeln('By Mr. Aiming Zhou.'); Writeln;
if ParamCount >= 1 then
begin
param1 := UpperCase(ParamStr(1));
paramExt := ExtractFileExt(param1);
end;
if (ParamCount < 1) or
(ParamCount > 2) or
((ParamCount = 2) and (UpperCase(ParamStr(2)) <> '/E')) or
((paramExt <> '.BMP') and (paramExt <> '.WMF')
and (paramExt <> '.EMF')) then
begin
writeln('ERROR: Param Invalid!');
writeln('Usage: Bmp2Wmf <.Bmp/.Wmf> [/E]');
writeln('notes: Param [/E] Define ouput .EMF File format.');
exit;
end; aBmp := Tbitmap.Create;
aWmf := TMetaFile.Create;
if paramExt = '.BMP'
then
begin
aBmp.LoadFromFile(param1);
aWmf.Width := aBmp.Width;
aWmf.Height := aBmp.Height;
if ParamCount = 2 then aWmf.Enhanced := true
else aWmf.Enhanced := false; with TMetaFileCanvas.CreateWithComment(
aWmf,0,'Aiming''s Conver program','V1.0') do
Try Draw(0,0,aBmp);
Finally Free;
end;
if aWmf.Enhanced
then aWmf.SaveToFile(copy(param1,1,pos('.',param1)) + 'EMF')
else aWmf.SaveToFile(copy(param1,1,pos('.',param1)) + 'WMF');
if aWmf.Enhanced
then writeln(param1, '==>',
copy(param1,1,pos('.',param1)) + 'EMF', #$0D)
else writeln(param1, '==>',
copy(param1,1,pos('.',param1)) + 'WMF', #$0D);
end
else
begin
aWmf.LoadFromFile(param1);
aBmp.Width := aWmf.Width;
aBmp.Height := aWmf.Height;
aBmp.Canvas.Draw(0,0,aWmf);
aBmp.SaveToFile(copy(param1,1,pos('.',param1)) + 'BMP');
writeln(param1, '==>',
copy(param1,1,pos('.',param1)) + 'EMF', #$0D);
end;
aBmp.Destroy;
aWmf.Destroy;
end.