有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的? (200分)

  • 主题发起人 主题发起人 ISY
  • 开始时间 开始时间
I

ISY

Unregistered / Unconfirmed
GUEST, unregistred user!
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
 
用TBitMap.ScanLine,在已答问题中搜一下ScanLine,有很多

例如:
lance2000 (2002-4-3 19:09:00)
//反色,即:底片效果
procedure NotColor(SrcBmp:Tbitmap);
var
i, j: integer;
SrcRow: pRGBArray

ScanlineBytes:integer;
begin
ScanlineBytes:=SrcBmp.Width*3;

SrcRow := SrcBmp.ScanLine[0];

for i := 0 to SrcBmp.Height - 1 do
begin
for j := 0 to SrcBmp.Width - 1 do
begin
SrcRow[j].rgbtRed :=not SrcRow[j].rgbtRed ;
SrcRow[j].rgbtGreen :=not SrcRow[j].rgbtGreen;
SrcRow[j].rgbtBlue :=not SrcRow[j].rgbtBlue;
end;

dec(integer(SrcRow), ScanlineBytes)
//老外写的是inc!!!
end;
end;



 
abmp:TBitmap
abmp.HandleType := bmDIB;
abmp.PixelFormat := pf24bit;

abmp.HandleType := bmDIB
HandleType属性起什么作用呢?
 
提供思路,将BMP图像各个点颜色信息,保存为二位数组,对这个数组进行一些算法操作,
然后在还原为BMP图像。
 
应该是这样转换。
 
先转为24bit,这样方便一些:
高斯滤波代码:
procedure TMainForm.GaotemplateClick(Sender: TObject)

var
bmp1, bmp2: Tbitmap;
p1, p2, p3, p4: pbytearray;
i, j: integer;
begin
self.DoubleBuffered := true

bmp1 := Tbitmap.Create;
bmp2 := Tbitmap.Create;
bmp1.Assign(ChildForm.image1.Picture.Bitmap);
bmp1.PixelFormat := pf24bit;
bmp1.Width := ChildForm.image1.Picture.Graphic.Width;
bmp1.Height := ChildForm.image1.Picture.Graphic.Height;
bmp2.Assign(ChildForm.image1.Picture.Bitmap);
bmp2.PixelFormat := pf24bit;
for j := 1 to bmp1.Height - 2 do
begin
p1 := bmp1.ScanLine[j];
p2 := bmp2.ScanLine[j - 1];
p3 := bmp2.ScanLine[j];
p4 := bmp2.ScanLine[j + 1];
for i := 1 to bmp1.Width - 2 do
begin

p1[3 * i + 2] := (p2[3 * (i - 1) + 2] + 2 * p2[3 * i + 2] +
p2[3
* (i + 1)
+ 2] + 2 * p3[3 * (i - 1) + 2] + 4 * p3[3 * i + 2] + 2
*
p3[3
* (i + 1)
+
2] + p4[3 * (i - 1) + 2] + 2 * p4[3 * i + 2] + p4[3 *
(i +
1) + 2])
shr
4;
p1[3 * i + 1] := (p2[3 * (i - 1) + 1] + 2 * p2[3 * i + 1] +
p2[3
* (i + 1)
+ 1] + 2 * p3[3 * (i - 1) + 1] + 4 * p3[3 * i + 1] + 2
*
p3[3
* (i + 1)
+
1] + p4[3 * (i - 1) + 1] + 2 * p4[3 * i + 1] + p4[3 *
(i +
1) + 1])
shr
4;
p1[3 * i] := (p2[3 * (i - 1)] + 2 * p2[3 * i] + p2[3 * (i +
1)] +
2 * p3[3
* (i - 1)] + 4 * p3[3 * i] + 2 * p3[3 * (i + 1)] + p4[3 *
(i -
1)] + 2 *
p4[3 * i] + p4[3 * (i + 1)]) shr 4;

end;

end;
ChildForm.Image1.Picture.Bitmap.Assign(Bmp1);
Bmp1.Free;
bmp2.Free;
end;

 
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
有什么控件可以显示除BMP、JPG外的多种图片格式,而且是免费的?
 
人家问用什么控件呀?
又不是要做图片处理!可惜我不知道有啥好控件!
 
http://www.delphi-gems.com/Graphics.php#GraphicEx

GraphicEx,免费并且有源码
 
多人接受答案了。
 
后退
顶部