using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
namespace 背景移动加抠图效果
{public partial class Form1 : Form{Bitmap bitmap1;//背景Bitmap bitmap2;//箱子Bitmap bitmap3;//人物int Rleft = 0;int Rtop = 0;int left;//背景变化public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){left = 0;MessageBox.Show("开始", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);            timer1.Enabled = true;Image Imageimage;Imageimage = System.Drawing.Image.FromFile("1.bmp");bitmap1 = new Bitmap(Imageimage);//背景Width = 939 / 2;Imageimage = System.Drawing.Image.FromFile("2.bmp");bitmap2 = new Bitmap(Imageimage);//箱子for (int i = 30; i < 80; i++)bitmap2.MakeTransparent(Color.FromArgb(i, i, i));Imageimage = System.Drawing.Image.FromFile("3.bmp");bitmap3 = new Bitmap(Imageimage);//人物             bitmap3.MakeTransparent(Color.White);}private void timer1_Tick(object sender, EventArgs e){left-=50;//背静移动的速度if (left <= -939 / 2) left = 0;Graphics g = this.CreateGraphics();g.DrawImage(bitmap1, new Point(left, 0));g.DrawImage(bitmap2, new Point(939 / 4, 196));g.DrawImage(bitmap3, new Point(Rleft, Rtop));}private void Form1_KeyDown(object sender, KeyEventArgs e){switch (e.KeyCode){case Keys.Left:if (Rleft > 0)Rleft -= 2;break;case Keys.Up:if (Rtop > 0)Rtop -= 2;break;case Keys.Right:if (Rleft + bitmap3.Width+20 < Width)Rleft += 2;break;case Keys.Down:if (Rtop + bitmap3.Height+20 < Height)Rtop += 2;break;default:break;}RECT r1 = new RECT();RECT r2 = new RECT();r1.x = Rleft+20;r1.y = Rtop+20;r1.w = bitmap3.Width-20;r1.h = bitmap3.Height-20;r2.x = 939/4+20;r2.y = 196+20;r2.w = bitmap2.Width-20;r2.h = bitmap2.Height-20;if (JudgeRectangleIntersect(r1, r2)){//产生随机数字Random rnd = new Random();int n = rnd.Next(1, 350);//产生的值要减1,因为数组下标是从0开始的n--;String[] strFile = File.ReadAllLines("随机事件表.csv", System.Text.Encoding.GetEncoding("gb2312"));String temp = strFile[n];MessageBox.Show("您今天要”:" + temp.Split(',')[1],(n+1).ToString());}}public struct RECT{public int x; //左上角x坐标public int y; //左上角Y坐标public int h; //矩形的高public int w; //矩形的宽};bool JudgeRectangleIntersect(RECT rect1, RECT rect2){int x1_1 = rect1.x;int y1_1 = rect1.y;int x1_2 = rect1.x + rect1.w;int y1_2 = rect1.y;int x1_3 = rect1.x;int y1_3 = rect1.y + rect1.h;int x1_4 = rect1.x + rect1.w;int y1_4 = rect1.y + rect1.h;int x2_1 = rect2.x;int y2_1 = rect2.y;int x2_2 = rect2.x + rect2.w;int y2_2 = rect2.y;int x2_3 = rect2.x;int y2_3 = rect2.y + rect2.h;int x2_4 = rect2.x + rect2.w;int y2_4 = rect2.y + rect2.h;// 判断矩形一的四个顶点之一是否在矩形二中if ((x1_1 > x2_1 && x1_1 < x2_4) && (y1_1 > y2_1 && y1_1 < y2_4))return true;if ((x1_2 > x2_1 && x1_2 < x2_4) && (y1_2 > y2_1 && y1_2 < y2_4))return true;if ((x1_3 > x2_1 && x1_3 < x2_4) && (y1_3 > y2_1 && y1_3 < y2_4))return true;if ((x1_4 > x2_1 && x1_4 < x2_4) && (y1_4 > y2_1 && y1_4 < y2_4))return true;// 判断矩形二的四个顶点之一是否在矩形一中if ((x2_1 > x1_1 && x2_1 < x1_4) && (y2_1 > y1_1 && y2_1 < y1_4))return true;if ((x2_2 > x1_1 && x2_2 < x1_4) && (y2_2 > y1_1 && y2_2 < y1_4))return true;if ((x2_3 > x1_1 && x2_3 < x1_4) && (y2_3 > y1_1 && y2_3 < y1_4))return true;if ((x2_4 > x1_1 && x2_4 < x1_4) && (y2_4 > y1_1 && y2_4 < y1_4))return true;return false;}}}

C# 背景移动加抠图效果相关推荐

  1. iOS开发-简单图片背景替换 实现抠图效果

    之前好奇, 想实现这样的功能   -----> iOS图像处理-(jpg去除白色背景) 把一张图片(.jpg)的白色背景抠掉,转成.png 格式的有alpha通道的透明图. 原图黑白分明, 像这 ...

  2. iOS开发-简单图片背景替换(实现抠图效果)

    之前好奇, 想实现这样的功能   -----> iOS图像处理-(jpg去除白色背景) 把一张图片(.jpg)的白色背景抠掉,转成.png 格式的有alpha通道的透明图. 原图黑白分明, 像这 ...

  3. HTML怎么在背景中加视频,视频加背景图片 怎样把一个视频嵌入到一个图片中

    不管是在视频中插入图片还是在视频画面中添加图片想必大家都是见过学过制作过的,今天这个教程和以前的有相同之处但还是有很大的不同的,就是把一个视频插入到一张图片中去,说白了就相当于于给视频添加一个背景图片 ...

  4. android 仿快递步骤_Android实现仿美团、顺丰快递数据加载效果

    我们都知道在Android中,常见的动画模式有两种:一种是帧动画(Frame Animation),一种是补间动画(Tween Animation).帧动画是提供了一种逐帧播放图片的动画方式,播放事先 ...

  5. css 背景图片模糊遮罩效果

    思路 在父元素上之上利用绝对定位再加一个图层并调整该图层的透明度 顺便一提:熟悉ps或pr的应该知道这图层叫做遮罩或者蒙版 方法利用:after伪元素 dom元素 <div className= ...

  6. 1.2文字排版、颜色、表格、图像形状、Jumbotron、信息提示框、按钮、按钮组、徽章、加载效果、分页、列表组、卡片、下拉菜单、折叠

    Bootstrap 5 默认设置 Bootstrap 5 默认的 font-size 为 16px, line-height 为 1.5. 此外,所有的 <p> 元素 margin-top ...

  7. Hexo博客Next6.0版本主题配置(背景图片加载、侧边栏社交小图标设置、设置网站图标)

    随机背景图片加载 原理 自动更换背景是修改添加背景的css样式实现 图片来源 https://source.unsplash.com/ 修改背景样式 修改themes\next\source\css\ ...

  8. Direct3D 11 总结 —— 8 实现简单的绿幕抠图效果

    介绍 绿幕抠图指将图片中的绿色扣去,并将该处的 alpha 分量设为 0,并将另外一张图片作为背景,以实现背景替换的功能,常用于电影和电视的制作场景. 最终效果 原始图片 绿幕抠图后效果 代码 这一块 ...

  9. html 增加等待状态,html5--等待加载效果

    等待载入 你的浏览器不支持canvas var wait = document.getElementById('wait').getContext('2d'); wait.fillRect(0,0,1 ...

最新文章

  1. 在Centos 6.5 上面配置 SVN
  2. Eigen::Map
  3. XenApp 6 license导入报错的终极解决方案
  4. c 字符串数组_redis为什么不直接使用C字符串,而要自定义简单动态字符串?
  5. 关于vue2.0组件通信
  6. MATLAB中line函数的用法
  7. ORACLE查询闪回
  8. mysql 定期备份策略,MySQL--3--mysqldump备份策略
  9. 如何绘制业务架构图 — 3.分解图
  10. Python学习笔记之函数(五)
  11. linux——网络情报收集(总结篇.干货+实战)
  12. 把二叉树打印成多行(C++)
  13. 和秋叶一起学PPT之四步走(课时二)
  14. java 安卓 物联网_面向物联网的Android应用开发与实践
  15. 存储和多屏互动,蜂鸟网的NAS应用解析
  16. 光纤猫下接路由器的设置教程
  17. android模拟qq进场动画,Android用ViewPager仿QQ实现多页面滑动及动画效果
  18. ietest 如何在多种浏览器上面测试JS页面效果
  19. java8中的流(Stream)
  20. 关于代码编辑器IDEA突然不能编辑文件的原因

热门文章

  1. chatgpt提问的艺术
  2. php case 多个条件判断语句,PHP switch case语句
  3. vue-qr二维码插件使用简介
  4. Linux下JAVA WEB服务器的搭建一(JDK\MYSQL\TOMCAT)
  5. 南昌墙绘 马德里的人行斑马线变成了涂鸦,效果怎么样?
  6. 喊山 (bfs)邻接表存
  7. 09.less-----less中的变量
  8. 心如花木,向阳而生(北漂归来)
  9. Webots R2022b 发布
  10. 一生的读书计划————