文档章节

再学 GDI+[84]: TGPImage(4) - 把图像显示在指定的矩形中

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 278
阅读 6
收藏 0
点赞 0
评论 0
本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses GDIPOBJ, GDIPAPI;

var
  img: TGPImage;
  rt: TRect;
  x1,y1: Integer;
  flag: Boolean;

procedure TForm1.FormCreate(Sender: TObject);
begin
  img := TGPImage.Create('C:\temp\test.png');
  DoubleBuffered := True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  img.Free;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  x1 := X;
  y1 := Y;
  flag := True;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if flag then
  begin
    DrawFocusRect(Canvas.Handle, rt);
    rt := Rect(x1, y1, X, Y);
    DrawFocusRect(Canvas.Handle, rt);
  end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if flag then
  begin
    rt := Rect(x1, y1, X, Y);
    flag := False;
    Repaint;
  end;
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  g: TGPGraphics;
begin
  g := TGPGraphics.Create(Self.Canvas.Handle);
  if rt.Right > 0 then g.DrawImage(img, MakeRect(rt));
  g.Free;
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 267
  ClientWidth = 355
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poDesktopCenter
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  OnMouseDown = FormMouseDown
  OnMouseMove = FormMouseMove
  OnMouseUp = FormMouseUp
  OnPaint = FormPaint
  PixelsPerInch = 96
  TextHeight = 13
end

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/07/01/1233254.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
C#中基于GDI+(Graphics)图像处理系列之任意角度旋转图像

简介 图像旋转功能在实际使用中出现得不多,Image自带RotateFlip方法可以简单的实现90、180等角度的旋转或者翻转,但是如果要实现任意角度的旋转该怎么做?对于一个有经验的同学估计不到半天...

lhtzbj12
2017/01/05
0
0
CDC绘图总结

GDI总结:http://dingchaoqun12.blog.163.com/blog/static/11606250420112213396361/ 对话框 控件 视图类 应用程序框架都会调用该CWnd的消息响应成员函数(的覆盖)来绘制窗口客户区。 在Win...

长平狐
2012/10/08
2.3K
0
【Visual C++】游戏开发笔记之四——游戏画面绘图(一)基本图形绘制

本系列文章由zhmxy555编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7333886 作者:毛星云 邮箱: happylifemxy@qq.com 欢迎邮件交流编程心得 从本篇文章开始笔锋一...

长平狐
2012/11/12
115
0
【Visual C++】游戏开发笔记十四 游戏画面绘图(四) 华丽的CImage类

本系列文章由zhmxy555编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7422922 作者:毛星云 邮箱: happylifemxy@qq.com 欢迎邮件交流编程心得 我们知道,Visual C+...

长平狐
2012/11/12
222
0
拖放 DataGrid 列--来自MSDN

发布日期: 09/19/2004 | 更新日期: 09/19/2004 Chris Sano Microsoft Corporation 摘要:了解如何利用基本的 GDI 功能,从而通过 DataGrid 控件获得可视化效果。通过跨越托管边界进行调用,...

晨曦之光
2012/03/09
174
0
VC实现多格式图像的转换

色彩鲜艳漂亮的高品质图像,一个个形象生动的Windows图标,高速运动、活灵活现的三维动画,这些无一不显示出程序设计者的艺术才华。在程序设计中,图像处理已经成为每个程序员的必修课。 在V...

余二五
2017/11/06
0
0
Windows桌面应用程序(1-2-4-7th) DPI和设备无关的像素

要使用Windows图形进行有效编程,您必须了解两个相关的概念: 每英寸点数(DPI) 设备无关像素(DIP)。 我们从DPI开始。这将需要短暂的绕行排版。在印刷术中,类型的大小以称为点的单位来测量。一点...

qq_37422196
01/12
0
0
OpenCV的基本绘图函数

相关函数介绍 [-] 相关函数介绍 示例代码 实验结果 1、 Point 该数据结构表示了由其图像坐标 和 指定的2D点。可定义为: Point pt; pt.x = 10; pt.y = 8; 或者 Point pt = Point(10, 8); Sca...

Joe科技
2017/01/15
0
0
BIGEMAP无偏移影像叠加配准(Auto CAD版)

BIGEMAP无偏移影像叠加配准(Auto CAD版) 第一步 工具准备 AutoCAD2008 AutoCAD2014(64位) BIGEMAP地图下载器: 相关教程:CAD文件直接导入BIGEMAP进行套合配准(推荐) 案例:等高线完美...

bigemap123
2017/07/04
0
0
OpenGL基础技术讲座--体系结构

OpenGL是一套图形标准,它严格按照计算机图形学原理设计而成,符合光学和视觉原理,非常适合可视化仿真系统。 首先,在OpenGL中允许视景对象用图形方式表达,如由物体表面顶点坐标集合构成的...

teacheryang
2010/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周一乱弹 —— 如果是你喜欢的女同学找你借钱

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享Michael Learns To Rock的单曲《Fairy Tale》 《Fairy Tale》- Michael Learns To Rock 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
37分钟前
9
3
NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
11
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部