眼睛经常疼痛,不舒服,吃些什么好
作者:admin 日期:2010-03-20
GDI+ 在Delphi程序的应用 -- 制作水印效果图片
作者:admin 日期:2010-03-18
利用GDI+可以很方便的制作带水印效果的图片,网上介绍这方面的文章也很多,但鲜有Delphi的,本文参照网上文章http://www.codeproject.com/KB/GDI-plus/watermark.aspx介 绍的方法,用Delphi 2007制作水印效果图片,原代码如下:
Delphi代码
- unit Main;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, Gdiplus, StdCtrls;
- type
- TMainForm = class(TForm)
- Button1: TButton;
- procedure FormPaint(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- private
- { Private declarations }
- Photo: TGpImage;
- PhWidth: Integer;
- PhHeight: Integer;
- Watermark: TGpImage;
- WmWidth: Integer;
- WmHeight: Integer;
- Bmp: TGpBitmap;
- public
- { Public declarations }
- end;
- var
- MainForm: TMainForm;
- implementation
- uses GdipTypes;
- {$R *.dfm}
- procedure TMainForm.Button1Click(Sender: TObject);
- var
- Clsid: TGUID;
- Parameters: TEncoderParameters;
- Quality: Integer;
- begin
- // 设置图像品质编码参数
- Parameters.Count := 1;
- Parameters.Parameter[0].Guid := EncoderQuality;
- Parameters.Parameter[0].ValueType := EncoderParameterValueTypeLong;
- Parameters.Parameter[0].NumberOfValues := 1;
- // 设置参数的值:品质等级,最高为100,图像文件大小与品质成正比
- Quality := 100;
- Parameters.Parameter[0].Value := @Quality;
- if GetEncoderClsid('image/jpeg', Clsid) then
- Bmp.Save('WatermarkPhoto.jpg', Clsid, @Parameters);
- end;
- procedure TMainForm.FormCreate(Sender: TObject);
- const
- ColorMatrix: TColorMatrix =
- (
- (1.0, 0.0, 0.0, 0.0, 0.0),
- (0.0, 1.0, 0.0, 0.0, 0.0),
- (0.0, 0.0, 1.0, 0.0, 0.0),
- (0.0, 0.0, 0.0, 0.3, 0.0),
- (0.0, 0.0, 0.0, 0.0, 1.0)
- );
- WorkingDirectory = '....Media';
- copyright = 'Copyright © 2008 - Maozefa';
- var
- gp: TGpGraphics;
- imageAttr: TGpImageAttributes;
- strFormat: TGpStringFormat;
- font: TGpFont;
- x, y: Single;
- begin
- // 读取原始图片
- Photo := TGpImage.Create(WorkingDirectory + '100_0349.jpg');
- PhWidth := Photo.Width;
- PhHeight := Photo.Height;
- // 读取水印图片
- Watermark := TGpImage.Create(WorkingDirectory + 'Watermark.bmp');
- WmWidth := Watermark.Width;
- WmHeight := Watermark.Height;
- // 建立一个新的位图,分辨率为72
- Bmp := TGpBitmap.Create(PhWidth, PhHeight, pf32bppArgb);
- Bmp.SetResolution(72, 72);
- // 建立新位图的画布,并设置图像显示质量和文本显示质量
- gp := TGpGraphics.Create(Bmp);
- gp.SmoothingMode := smAntiAlias;
- gp.TextRenderingHint := thAntiAlias;
- // 在画布上画原始图片
- gp.DrawImage(Photo, GpRect(0, 0, PhWidth, PhHeight),
- 0, 0, PhWidth, PhHeight, utPixel);
- // 建立图像显示辅助类
- imageAttr := TGpImageAttributes.Create;
- // 设置透明颜色为水印图片四角的底色,水印图显示为圆角图片
- imageAttr.SetColorKey($ff00ff00, $ff00ff00, ctBitmap);
- // 设置水印图片不透明度为0.3
- imageAttr.SetColorMatrix(ColorMatrix, cfDefault, ctBitmap);
- // 在画布左上角画水印图
- gp.DrawImage(Watermark, GpRect({PhWidth - WmWidth - }10, 10, WmWidth, WmHeight),
- 0, 0, WmWidth, WmHeight, utPixel, imageAttr);
- // 设置文本字体和显示格式
- font := TGpFont.Create('arial', 16, [fsBold]);
- strFormat := TGpStringFormat.Create;
- strFormat.Alignment := saCenter;
- // 在画布下方居中显示阴影文本
- x := PhWidth / 2;
- y := PhHeight - 26;
- gp.DrawString(copyright, font, Brushs[$99000000], x + 1, y + 1, strFormat);
- gp.DrawString(copyright, font, Brushs[$99ffffff], x, y, strFormat);
- font.Free;
- strFormat.Free;
- imageAttr.Free;
- gp.Free;
- end;
- procedure TMainForm.FormDestroy(Sender: TObject);
- begin
- Photo.Free;
- Watermark.Free;
- Bmp.Free;
- end;
- procedure TMainForm.FormPaint(Sender: TObject);
- var
- g: TGpGraphics;
- begin
- g := TGpGraphics.Create(Canvas.Handle);
- // 显示原始图片
- g.DrawImage(Photo, 0, 0, PhWidth, PhHeight);
- // 显示水印原始图片
- g.TranslateTransform(0, PhHeight + 5);
- g.DrawImage(Watermark, 0, 0, WmWidth, WmHeight);
- // 显示带水印和文本的图像
- g.TranslateTransform(PhWidth, -(PhHeight + 5));
- g.DrawImage(Bmp, 0, 0, PhWidth, PhHeight);
- g.Free;
- end;
- end.
代码中已经进行了注释,不再累叙,针对本文所参考的文章内容(Addr:http://www.codeproject.com/KB/GDI-plus/watermark.aspx), 作几点说明:
1、在参考的文章中,对文本字体、显示位置进行了测试和计算,本文为强调主要内容,对这些代码进行了简化;
2、在水印底色透明处理中,原文采用的是TGpImageAttributes.SetRemapTable方法,而本文采用的则是 TGpImageAttributes.SetColorKey方法,效果是一样的,具体原理可参照我的文章《GDI+ 在Delphi程序的应用 -- 图像的透明显示技巧》;
五脏排毒最简单有效的方法
作者:admin 日期:2010-03-17
一些养生保健小知识
作者:admin 日期:2010-03-17
擦鼻增强记忆力
鼻是人体呼吸的通道,如果经常鼻塞,呼吸不畅,不仅会出现胸闷、气短等缺氧症状,还是造成记忆力衰退的病因之一。所以增强记忆,就该从防治鼻病做起。可以用摩擦鼻梁两侧的方法来强化鼻子的机能,每天摩擦鼻梁两侧五十次,有发热的感觉即可,要坚持不懈方可见效。
煮茶比泡茶更利防癌
英国科学家发现,煮茶和用沸水泡茶相比,用茶壶煮茶可以让茶叶释放出更多的抗癌物质。研究表明,茶叶在茶壶中煮沸5分钟,可以使吸收癌症有害物质的抗氧化剂浓度达到最高峰,饮用在壶中煮制5分钟的茶水1小时后,血液中的抗氧化剂水平会上升45﹪。
鼻是人体呼吸的通道,如果经常鼻塞,呼吸不畅,不仅会出现胸闷、气短等缺氧症状,还是造成记忆力衰退的病因之一。所以增强记忆,就该从防治鼻病做起。可以用摩擦鼻梁两侧的方法来强化鼻子的机能,每天摩擦鼻梁两侧五十次,有发热的感觉即可,要坚持不懈方可见效。
煮茶比泡茶更利防癌
英国科学家发现,煮茶和用沸水泡茶相比,用茶壶煮茶可以让茶叶释放出更多的抗癌物质。研究表明,茶叶在茶壶中煮沸5分钟,可以使吸收癌症有害物质的抗氧化剂浓度达到最高峰,饮用在壶中煮制5分钟的茶水1小时后,血液中的抗氧化剂水平会上升45﹪。
健康长寿饮食方
作者:admin 日期:2010-03-17
健康知识,你知道吗?
作者:admin 日期:2010-03-17
台湾,一名女孩突然无缘无故的七孔流血暴毙,一夜之间,就奔赴黄泉,经过初步验尸.
断定为因砒霜中毒而死亡。那砒霜从何而来一名医学院的教授被邀赶来协助破案。
教授仔细地察看了死者胃中取物,不到半个小时,暴毙之谜便揭晓。教授说:「死者并非自杀,亦不是被杀,而是死于无知的『它杀』」大家莫名其妙。教授说:「砒霜是在死者腹内产生的。」死者生前每天也会服食「维他命C 」,这完全没有问题问题出在她晚餐了大量的虾,虾本身也是没有问题的,所以她在家了都没有事,但死者却同时服用了「维他命C 」,问题就出在这里 !
美国芝加哥大学的研究员,通过实验发现,虾等软壳类食物含有大量浓度较高的-五钾砷化合物。这种物质食入体内,本身对体并无毒害作用但是,在服用「维生素 C」之后,由于化学作用,使原来无毒的-五钾砷 (即砷酸酐,亦称五氧化砷,其化学式为(As05),转变为有毒的三钾砷 (即亚砷酸酐 ),又称为三氧化二砷,其化学式为(As203),这就是们俗称的砒霜!
砒霜有原浆毒作用,能麻痹毛细血管,抑制巯基梅的活性,并使肝脏脂变肝小叶中心坏死,心、肝、肾、肠充血,上皮细胞坏死,毛细血管扩张。故中其毒而死者,常是七窍出血。
断定为因砒霜中毒而死亡。那砒霜从何而来一名医学院的教授被邀赶来协助破案。
教授仔细地察看了死者胃中取物,不到半个小时,暴毙之谜便揭晓。教授说:「死者并非自杀,亦不是被杀,而是死于无知的『它杀』」大家莫名其妙。教授说:「砒霜是在死者腹内产生的。」死者生前每天也会服食「维他命C 」,这完全没有问题问题出在她晚餐了大量的虾,虾本身也是没有问题的,所以她在家了都没有事,但死者却同时服用了「维他命C 」,问题就出在这里 !
美国芝加哥大学的研究员,通过实验发现,虾等软壳类食物含有大量浓度较高的-五钾砷化合物。这种物质食入体内,本身对体并无毒害作用但是,在服用「维生素 C」之后,由于化学作用,使原来无毒的-五钾砷 (即砷酸酐,亦称五氧化砷,其化学式为(As05),转变为有毒的三钾砷 (即亚砷酸酐 ),又称为三氧化二砷,其化学式为(As203),这就是们俗称的砒霜!
砒霜有原浆毒作用,能麻痹毛细血管,抑制巯基梅的活性,并使肝脏脂变肝小叶中心坏死,心、肝、肾、肠充血,上皮细胞坏死,毛细血管扩张。故中其毒而死者,常是七窍出血。







