【图像处理高级编程】-放大镜

文章目录

放大镜

提示:这里可以添加技术概要
在这里插入图片描述

核心源码

uses
IniFiles;
const
KeywordSetup = ‘信息文件当前路径’;
KeywordDirectory = ‘目录’;

function IsPaletteDevice: BOOLEAN;
var
DeviceContext: hDC;
begin
//获取屏幕DC
DeviceContext := GetDC(0);

try
RESULT := GetDeviceCaps(DeviceContext, RASTERCAPS) and RC_PALETTE = RC_PALETTE
finally
// Give back the screen DC
ReleaseDC(0, DeviceContext)
end
end {是否设备调色板};

function GetPixelFormatString(const PixelFormat: TPixelFormat): string;
var
Format: string;
begin
case PixelFormat of
pfDevice: Format := ‘Device’;
pf1bit: Format := ‘1 bit’;
pf4bit: Format := ‘4 bit’;
pf8bit: Format := ‘8 bit’;
pf15bit: Format := ‘15 bit’;
pf16bit: Format := ‘16 bit’;
pf24bit: Format := ‘24 bit’;
pf32bit: Format := ‘32 bit’
else
Format := ‘Unknown’;
end;
RESULT := Format;
end {获得象素格式字符串};

function GetBitmapDimensionsString(const Bitmap: TBitmap): string;
begin
RESULT := IntToStr(Bitmap.Width) + ’ by ’ +
IntToStr(Bitmap.Height) + ’ pixels by ’ +
GetPixelFormatString(Bitmap.PixelFormat) + ’ color’;
end {获取位图的尺寸};

//===========================================================================

procedure TMagnifierForm.ShowMagnifier(const X, Y: INTEGER);
const
// 用额外的空间绘制环面
ExtraSpace = 8; // pixels
HalfExtraSpace = ExtraSpace div 2;
QuarterExtraSpace = ExtraSpace div 4;

var
AreaRadius: INTEGER;
CircularMask: TBitmap;
Magnification: INTEGER;
ModifiedBitmap: TBitmap;
xActual: INTEGER;
yActual: INTEGER;
begin
if CheckboxStretch.Checked
//拉伸则算出真实坐标
then begin
xActual := MulDiv(X, Bitmap.Width, BigImage.Width);
yActual := MulDiv(Y, Bitmap.Height, BigImage.Height)
end

else begin
xActual := X;
yActual := Y

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大龙软件研发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值