rect

【WPF学习】第四十七章 WriteableBitmap类

倾然丶 夕夏残阳落幕 提交于 2020-02-22 21:33:49
  WPF允许使用Image元素显示位图。然而,按这种方法显示图片的方法完全是单向的。应用程序使用现成的位图,读取问题,并在窗口中显示位图。就其本身而言,Image元素没有提供创建和编辑位图信息的方法。   这正是WriteableBitmap类的用武之地。该类继承自BitmapSource,BitmapSource类是当设置Image.Source属性时使用的类(不管是在代码中直接设置图像,还是在XAML中隐式地设置图像)。但BitmapSource是只读的位图数据映射,而WriteableBitmap类是可修改的像素数组,为实现许多有趣得效果提供了可能。 一、生成位图   为使用WriteableBitmap类生成一幅位图,必须提供提供几部分重要信息:以像素为单位的宽度和高度、两个方向上的DPI分辨率以及图像格式。   下面是创建一幅与当前图像元素尺寸相同的位图的示例: // Create the bitmap, with the dimensions of the image placeholder. WriteableBitmap wb = new WriteableBitmap((int)img.Width, (int)img.Height, 96, 96, PixelFormats.Bgra32, null);   PixelFormats枚举提供了许多像素格式

Go 系列教程 ——第 29 篇:Defer

自作多情 提交于 2020-02-22 19:45:13
什么是 defer? defer 语句的用途是:含有 defer 语句的函数,会在该函数将要返回之前,调用另一个函数。这个定义可能看起来很复杂,我们通过一个示例就很容易明白了。 示例 package main import ( "fmt" ) func finished() { fmt.Println("Finished finding largest") } func largest(nums []int) { defer finished() fmt.Println("Started finding largest") max := nums[0] for _, v := range nums { if v > max { max = v }} fmt.Println("Largest number in", nums, "is", max) } func main() { nums := []int{78, 109, 2, 563, 300} largest(nums) } 上面定义了接口 Interface ,它包含了两个方法: calculate() 计算并返回项目的收入,而 source() 返回项目名称。 在 playground 上运行 上面的程序很简单,就是找出一个给定切片的最大值。 largest 函数接收一个 int 类型的切片作为参数

Python 的一个小项目 —— 飞机大战

夙愿已清 提交于 2020-02-20 10:38:54
一.安装pygame 1. 更新pip 之前装了 python 3.x 的任一个版本之后,会自己下载pip,用的时候更新以下,就可以了,打开cmd(快捷键:win + r),输入以下指令 python -m pip install -U pip 2.通过pip安装工具直接安装pygame 继续在cmd命令行输入 python -m pip install pygame 3. 检查是否安装成功 重新打开 cmd,先输入 python ,注意一定要先输入 python ,然后输入 import pygame 输出结果没有报错,并且输出 pygame 的版本号即为正确,还有一串英语,感觉就是个欢迎的语句 以上是在python的命令行打开的结果,使用pycharm编辑代码,在使用pygame碰到pygame不能正常使用的办法如下 file -> setting -> project(这里是你的项目名称) -> project interpreter 然后设置就好 二. pygame 入门 使用 pygame 创建图形窗口 游戏的初始化和退出 理解游戏中的坐标系 创建游戏主窗口 简单的游戏循环 简单游戏的初始化和退出 方法 说明 pygame.init() 导入并初始化所有 pygame 模块,使用其他模块之前,必须先调用 init 方法 游戏代码 游戏运行的代码 pygame.quit()

VC实现打开BMP JPG或GIF图片

别来无恙 提交于 2020-02-19 08:21:52
之前写过一篇文章关于VC中打开图片文件的文章,那个不是很好理解,里面有些地方显得有点乱,这个版本的要容易理解一点,不多说了,我们开始吧。 源文件下载 : ShowBitmap.rar 1、新建一个单文档的应用程序,项目名称为ShowBitmap 2、为CShowBitmapView类添加下述成员变量和成员函数:其中CImage m_MyImage需要头文件"atlimage.h"的支持,或者你可以用向导来加这个变量,那么头文件会自动添加的,我们这里手动 在CShowBitmapView.h中加入#include "atlimage.h", 一定要记得加这个。 // 参数定义 public : CString strPicPath; // 打开的图片文件文件名 CString extname; // 打开的图片文件的扩展名 CBitmap m_bitmap; // 创建位图对象 CImage m_MyImage; // 用于读取与显示jpg等格式的图像文件 void ShowBitmap(CDC * pDC,CString strPicPath); // 用来显示指定位图的函数 void ShowPic(CDC * pDC,CString picName); 3、为ID_FILE_OPEN消息添加响应函数(具体怎么加就不细说了),编写该函数(代码如下) void

小目标二维码检测

℡╲_俬逩灬. 提交于 2020-02-18 11:04:20
#!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @文件 :main.py @说明 :小目标二维码检测方法 @时间 :2020/01/07 08:31:52 @作者 :钱彬 @版本 :1.0 ''' import numpy as np import cv2 if __name__ == "__main__": #读取图像 filepath = "80.jpg" img = cv2.imread(filepath) imgHeight,imgWidth,channel = np.shape(img) # 转灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换灰色 # 计算梯度 ddepth = cv2.CV_32F gradX = cv2.Sobel(gray, ddepth=ddepth, dx=1, dy=0, ksize=-10) gradY = cv2.Sobel(gray, ddepth=ddepth, dx=0, dy=1, ksize=-10) gradient = cv2.subtract(gradX, gradY) gradient = cv2.convertScaleAbs(gradient) # 模糊和二值化 blurred = cv2.blur

Pygame常用方法

こ雲淡風輕ζ 提交于 2020-02-18 03:48:16
import pygame # 初始化pygame库,让计算机硬件准备 pygame.init() # ----------窗口相关操作----------- # 创建窗口 window = pygame.display.set_mode([窗口宽,窗口高]) # 设置窗口标题 pygame.display.set_caption("窗口标题") # 加载资源图片,返回图片对象 image = pygame.image.load("res/game.ico") # 设置窗口图标 pygame.display.set_icon(image) # 指定坐标,将图片绘制到窗口 window.blit(image, (0, 0)) # ----------图像相关操作----------- # 加载图片文件,返回图片对象 image = pygame.image.load("图片路径") # 获得图片矩形对象 -> Rect(x, y, width, height) # 默认情况下左上角的坐标是 (0, 0) rect = image.get_rect(centerx=x, centery=y) # 在原位置基础上,移动指定的偏移量 (x, y 增加) rect.move_ip(num1, num2) # 判断两个矩形是否相交,相交返回True,否则返回False flag =

Pygame:飞机大战7(详细解读)

霸气de小男生 提交于 2020-02-17 18:36:28
文章目录 (一)完成给玩家三次游戏机会的功能 1️⃣在屏幕右下角绘制玩家生命数 2️⃣完成玩家复活后三秒真男人状态 (二)绘制游戏结束画面 1️⃣附上自己修改第一次游戏结束没有record.text文件报的文件不存在异常的解决方案 2️⃣附上这个飞机大战项目的所有源码,加油! 1️⃣子弹模块----bullet.py 2️⃣敌机模块----enemy.py 3️⃣玩家飞机模块----myplane.py 4️⃣补给包模块----supply.py 5️⃣主模块----main.py 🚴大家好!我是近视的脚踏实地,虽然近视,但是脚踏实地。这一篇继续要完善飞机大战的游戏,这篇主要完成的内容是给添加给玩家三条生命值的功能,以及游戏结束画面的处理 (一)完成给玩家三次游戏机会的功能 很多游戏都会给玩家提供多次尝试的机会,因此我们也添加这么一个功能,玩家总共会有三次机会,在游戏界面的右下角通过显示多少个小飞机来提示玩家还剩下多少次机会,那这张图片其实就是玩家飞机的缩小版 1️⃣在屏幕右下角绘制玩家生命数 myplane.py 👇 #myplane . py import pygame class MyPlane ( pygame . sprite . Sprite ) : def __init__ ( self , bg_size ) : pygame . sprite . Sprite .

go接口详解

北城以北 提交于 2020-02-16 13:49:25
go面向接口编程知识点 接口定义与格式 隐式实现及实现条件 接口赋值 空接口 接口嵌套 类型断言 多态 接口定义与格式 接口(interface)是一种类型,用来定义行为(方法)。这句话有两个重点, 类型 和 定义行为 。 首先解释定义行为: 接口即一组方法定义的集合,定义了对象的一组行为,就是定义了一些函数,由具体的类型实例实现具体的方法。 换句话说,一个接口就是定义(规范或约束),接口并不会实现这些方法,具体的实现由类实现,实现接口的类必须严格按照接口的声明来实现接口提供的所有功能。接口的作用应该是将定义与实现分离,降低耦合度。 在多人合作开发同一个项目时,​接口表示调用者和设计者的一种约定,事先定义好相互调用的接口可以大大提高开发的效率。有了接口,就可以在不影响现有接口声明的情况下,修改接口的内部实现,从而使兼容性问题最小化。 接口的定义格式: type Namer interface { Method1(param_list) return_type //方法名(参数列表) 返回值列表 Method2(param_list) return_type //方法名(参数列表) 返回值列表   ...... }    隐式实现及实现条件 怎么实现接口: 实现接口的类并不需要显式声明,只需要实现接口所有的函数就表示实现了该接口,而且类还可以拥有自己的方法。 接口能被哪些类型实现:

iOS - 如何判断一个点是不是在方框(CGRect)、圆(Circle)、三角形(Triangle)内呢?

笑着哭i 提交于 2020-02-13 23:21:11
如何判断一个点是不是在方框(CGRect)、圆(Circle)、三角形(Triangle)内呢? 1. 方框 //苹果官方方法可以判断 + ( BOOL ) point : ( CGPoint ) point inSquareArea : ( CGRect ) rect { return CGRectContainsPoint ( rect , point ) ; } 2. 圆 //圆心到点的距离>?半径 + ( BOOL ) point : ( CGPoint ) point inCircleRect : ( CGRect ) rect { CGFloat radius = rect . size . width / 2.0 ; CGPoint center = CGPointMake ( rect . origin . x + radius , rect . origin . y + radius ) ; double dx = fabs ( point . x - center . x ) ; double dy = fabs ( point . y - center . y ) ; double dis = hypot ( dx , dy ) ; return dis <= radius ; } 3. 三角形 //点都否在三边线的右边?这个应该不是最优解 + ( BOOL

面向对象-贪吃蛇

北战南征 提交于 2020-02-13 13:43:43
初学面向对象比较难,基本每行都有注释,大家要耐心,细心。 < ! DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < title > 贪吃蛇 < / title > < style > . map { width : 400 px ; height : 400 px ; background - color : black ; position : relative ; } < / style > < / head > < body > < h2 id = "grade" > 0 < / h2 > < ! -- 记录分数 得起到事件监听的作用 -- > < div class = "map" > < / div > < script > // 根本性的 流程 先有数据准备数据 更新数据 再把数据渲染到视图上(数据驱动地图) { class Map { //Map地图类 rect 定义一个当前每个小格的宽。 constructor ( el , rect = 10 ) { //接收实例化对象gameMap的内容 this . el =