高分求救图片的载入和保存方法(200分)

  • 主题发起人 主题发起人 valley
  • 开始时间 开始时间
V

valley

Unregistered / Unconfirmed
GUEST, unregistred user!
做一个IIS下运行的dll,用于批量把大图片转化为小图片,保存为jpg格式,现遇到难题了。
1、用loadimage只能加载 bmp函数,无法载入png和jpg图片,请问如何加载后两种图片
2、如何保存bitblt转化后的图片
 
TBitBlt 有个Glyph属性是TBitMap型,可以用它的savetofile()保存,另外下面这段的PaintTo可以试试看:
procedure TForm1.Button1Click(Sender: TObject);
var
B: TBitmap;
begin
B := TBitmap.Create;
B.Width := Panel1.Width;
B.Height := Panel1.Height;
Panel1.PaintTo(B.Canvas.Handle, 0, 0);
B.SaveToFile('fff.bmp');
B.Free;
end;

jpg 可以uses jpeg,
png 不了解,
请高人来解答吧.
 
使用GDI+(XP/03自带,2k需要GdiPlus.dll)
http://www.progdigy.com/headers/
 
载入png和Jpg要Uses Jpeg单元。Jpg图象是TJpeg型。
 
需要第三方图形库的支持,
Jpeg的本来就支持
 
转贴
unit Unit1;
interface
uses
Windows, Messages, jpeg, Sysutils, DBTables, Db, Dialogs, ExtDlgs,Controls, StdCtrls,
Buttons, Classes, Graphics, Forms, Menus, ExtCtrls, ComCtrls, ToolWin,
ImgList,StdActns, DBCtrls, Grids,winprocs, DBGrids;
type
TForm1 = class(TForm)
……
在query里定义一个函数:tx_temp2(在它的SQL里)
procedure TForm1.BitBtn1Click(Sender: TObject); //存储
var jpegs:TJpegImage;
mstream: tstringstream;
begin
jpegs:=TJpegImage.Create;
jpegs.Assign(image1.Picture.Graphic);
mstream:=Tstringstream.create('');
jpegs.SaveToStream(mStream);
query1.SQL.Clear;
query1.SQL.add('insert into table1(a) values(:tx_temp2)');
query1.Params[0].AsBlob:=mstream.DataString;
query1.execsql;
end;
显示
procedure TForm1.BitBtn2Click(Sender: TObject);
var
mStream: tstream;
Jpegs: TJpegImage;
begin
query1.close ;
query1.sql.clear ;
query1.sql.text:='select * from table1 where 条件';
query1.open ;
jpegs:=TJpegImage.Create;
mStream :=Query1.CreateBlobStream(Query1.FieldByName('passer_picture'),bmRead);
try
mstream.Position:=0;
if mstream.Size>0 then
begin
jpegs.LoadFromStream(mstream);
image2.Picture.Assign(jpegs);
end
else
begin
image2.Picture.Assign(nil);
end;
finally
jpegs.Free;
mstream.Free;
end;
end;
 
我是要全部用api实现。程序执行时无图形界面,所有的图片载入、转换、保存均在后台执行,因为我做这个东西就是要让asp调用啊。

现在我用loadimage ,可以载入bmp图片,但载入jpg和png返回就为0(不成功)。
 
下一个GraphicEX控件就支持PNG等图像文件了
 
后退
顶部