用Delphi从内存流中判断图片格式的代码
利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的判断这个文件是什么类型的文件。
procedure TFrm.CheckImgType(Sender: TObject);
var //声明变量
MyImage:TMemoryStream; //内存流对象
Buffer:Word;
i:integer;
begin
if OpenDialog1.Execute then //OpenDialog1是一个文件打开对话框
begin
MyImage:=TMemoryStream.Create; //建立内存流对象
try
MyImage.LoadfromFile(OpenDialog1.FileName); //把刚刚用户选择的文件载入到内存流中
MyImage.Position := 0; //移动指针到最开头的位置
if MyImage.Size = 0 then //如果文件大小等于0,那么
begin
ShowMessage('错误');
Exit;
end;
MyImage.ReadBuffer(Buffer,2); //读取文件的前2个字节,放到Buffer里面
if Buffer=$4D42 then //如果前两个字节是以4D42[低位到高位]
begin
ShowMessage('BMP'); //那么这个是BMP格式的文件
end
else if Buffer=$D8FF then //如果前两个字节是以D8FF[低位到高位]
begin
ShowMessage('JPEG'); //........一样 下面不注释了
end
else if Buffer=$4947 then
begin
ShowMess
相关文档:
以Caps Lock键举例,其它(VK_NUMLOCK),类同:
判断状态:
方法1
Level: integer;
Level := GetKeyState(VK_CAPITAL);
if Level = 0 then
//没亮
else
//亮了(1)
方法2
KeyState : TKeyBoardState;
GetKeyboardState(KeyState);
if KeySt ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
procedure Butt ......
1.调用API函数
procedure CopyFile(fromFileName,ToFileName:string);
var
f1,f2:file;
Begin
AssignFile(f1,fromFileName); file://指定源文件名
AssignFile(f2,ToFileName); file://指定目标文件名
Reset(f1);
Try
Rewrite(f2);
Try
If Lzcopy(TfileRec(f1).handle,TfileRec(f2).Handle)<0
Then
Raise ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Bu ......