通过点击按钮对bitmap(此bitmap为包含数字号码的图象)进行图象旋转,图象灰度变换等图象处理过程,最后通过神经网络进行图象中的数字识别,识别完不能释放GDI资源,因此连续点击按钮对多张数字图片识别将耗尽GDI资源,检查程序好象所有create的对象都free了。不知如何解决,请高手指点!
解决方案 »
- delphi读取注册表
- 我用UDPClient组件做通信程序时,如何判断在设计时候UDPClient指定的端口已经被使用?或者说如何防止同一台计算机上运行两个完全相同的客
- Delphi报表打印问题,急!!救命啊
- 如何将一个数据集的数据移到另一个数据集中
- 为什么找不到我的机器名字呢?
- _______________________________ADO数据库刷新问题!!!____________________
- 问题还是没解决,高手进来看看。
- 引用c++的dll图像缓冲区指针,如何显示位图
- 我正在格式话硬盘,format c:后面要加叁数是..
- 使用webbrowser打开网页时如何不让它下载网页上的图片?
- 关于shfileoperation的怪问题,不知道是不是delphi包装api的bug!
- 请问资源泄露问题
var
pal: PLogPalette;
hpal: HPALETTE;
i,j:integer;
pp:p24Bitmap;
temp:byte;
BMap:Tmatrix;
begin
BMap:=Tmatrix.create(bitmap.height,bitmap.width);//创建和bitmap同样大小的矩阵
if bitmap.PixelFormat=pf24bit then
begin
//将 bitmap灰度值映射到BMap矩阵中
for i:=0 to bitmap.Height-1 do
begin
pp:=bitmap.ScanLine[i];
for j:=0 to bitmap.width-1 do
begin
temp:=floor(pp[j].iBlue*0.114+pp[j].iGreen*0.587+pp[j].iRed*0.299); //0.114,0.587,0.299灰度转换
BMap.SetValue(i,j,temp);
end;
end;
bitmap.Dormant;
bitmap.FreeImage;
bitmap.Monochrome:=true;
bitmap.ReleaseHandle;
//////重建8位位图
bitmap.HandleType:=bmDIB;
bitmap.PixelFormat:=pf8bit;
//************** 建灰度调色板
pal := nil;
try
GetMem(pal, sizeof(TLogPalette) + sizeof(TPaletteEntry) * 255);
pal.palVersion := $300;
pal.palNumEntries := 256;
for i := 0 to 255 do //256colors gray palette
begin
pal.palPalEntry[i].peRed:=i;
pal.palPalEntry[i].peGreen:=i;
pal.palPalEntry[i].peBlue:=i;
end;
hpal := CreatePalette(pal^);
if hpal <> 0 then
Bitmap.Palette := hpal;
finally
FreeMem(pal);
end;
BMap.SaveValueToBitmap(bitmap);
end
else
showmessage('不是24位位图');
BMap.free;
end;
bitmap.FreeImage;
bitmap.Monochrome:=true;
bitmap.ReleaseHandle;
???