百叶窗效果显示图片源码(c#)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

显示图片:

this.pictureBox.Image = Image.FromFile("image.jpg", false); 

百叶窗有两种显示效果,一种是垂直百叶窗,另一种是水平百叶窗。

 

实现百叶窗显示图像有两种方式:一是根据窗口或图像 的高度或宽度和定制的百叶窗显示条宽度计算百叶窗的显示的条数量;二是根据窗口或图像的高度或宽度和定制的百叶窗显示条数量计算百叶窗的显示的条宽度。

垂 直百叶窗实现代码如下:

 

private void button1_Click(object sender, EventArgs e)
{
  //垂直百叶窗显示图像
  try
  {
  MyBitmap = (Bitmap)this.pictureBox1.Image.Clone();
  int dw = MyBitmap.Width / 30;
  int dh = MyBitmap.Height;
  Graphics g = this.pictureBox1.CreateGraphics();
  g.Clear(Color.Gray);
  Point[] MyPoint = new Point[30];
  for (int x = 0; x < 30; x++)
  {
  MyPoint[x].Y = 0;
  MyPoint[x].X = x * dw;
  }
  Bitmap bitmap = new Bitmap(MyBitmap.Width, MyBitmap.Height);
  for (int i = 0; i < dw; i++)
  {
  for (int j = 0; j < 30; j++)
  {
  for (int k = 0; k < dh; k++)
  {
  bitmap.SetPixel(MyPoint[j].X + i, MyPoint[j].Y + k, MyBitmap.GetPixel(MyPoint[j].X + i, MyPoint[j].Y + k));
  }
  }
  this.pictureBox1.Refresh();
  this.pictureBox1.Image = bitmap;
  System.Threading.Thread.Sleep(100);
  }
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message, "信息提示");
  }


 

水平百叶窗实现代码如下:

 

private void button3_Click(object sender, EventArgs e)
{
  //水平百叶窗显示图像
  try
  {
  MyBitmap = (Bitmap)this.pictureBox1.Image.Clone();
  int dh = MyBitmap.Height / 20;
  int dw = MyBitmap.Width;
  Graphics g = this.pictureBox1.CreateGraphics();
  g.Clear(Color.Gray);
  Point[] MyPoint = new Point[20];
  for (int y = 0; y < 20; y++)
  {
  MyPoint[y].X = 0;
  MyPoint[y].Y = y * dh;
  }
  Bitmap bitmap = new Bitmap(MyBitmap.Width, MyBitmap.Height);
  for (int i = 0; i < dh; i++)
  {
  for (int j = 0; j < 20; j++)
  {
  for (int k = 0; k < dw; k++)
  {
  bitmap.SetPixel(MyPoint[j].X + k, MyPoint[j].Y + i, MyBitmap.GetPixel(MyPoint[j].X + k, MyPoint[j].Y + i));
  }
  }
  this.pictureBox1.Refresh();
  this.pictureBox1.Image = bitmap;
  System.Threading.Thread.Sleep(100);
  }
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message, "信息提示");
  }

转载于:https://my.oschina.net/duluo180/blog/8130

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

16个顶级思维模型

思维模型会给你提供一种视角或思维框架&#xff0c;从而决定你观察事物和看待世界的视角。顶级的思维模型能提高你成功的可能性&#xff0c;并帮你避免失败。打造多元思维模型想法来自查理芒格&#xff0c;而查理芒格是沃伦巴菲特的得力助手。Farnam Street曾这样描述思维模型&…

使用BeetleX网关对Web应用进行灰度发布

灰度发布可以更有效地保障服务运作的可靠性&#xff0c;即能让服务得以更新的同时也不影响业务动作。BeetleX网关支持全动态化实时配置&#xff0c;对应用进行灰度发布可以说是非常便利。灰度发布在BeetleX网关中涉及到以下:添加新应用服务&#xff0c;测试路由配置&#xff0c…

17道因为太难而被禁用的Google面试题

即使是最成功的公司&#xff0c;它的招聘过程有时也会很不靠谱&#xff0c;经常会出一些奇怪的看似没有答案的面试问题&#xff0c;但标准答案却让应聘者还没来得及接近「起跑线」就被「退赛」了。Google 曾经就是这样的公司&#xff0c;招聘人员会出一些难为应聘者的高质量问题…

在 .NET Core 中构建 REST API

翻译自 Camilo Reyes 2020年8月26日的文章 《Build a REST API in .NET Core》 [1]REST API 可以使用简单的动词&#xff08;如 POST、PUT、PATCH 等&#xff09;将大型解决方案背后的复杂性隐藏起来。在本文中&#xff0c;Camilo Reyes 解释了如何在 .NET Core 中创建 REST AP…

一个检查SPN的小工具

如果大家配过kerberos的话会发现&#xff0c;AD本身并没有一个可以检查SPN的工具&#xff0c;而SPN一旦配重复的话会出现奇怪的错误&#xff0c;所以我就写了这么一个简单的工具。 截图 使用时候&#xff0c;输入你要查询的AD的名称或者IP&#xff0c;然后输入一个该域的用户信…

如果把整个因特网都印出来 你认为会怎么样

2019独角兽企业重金招聘Python工程师标准>>> 如果把整个因特网都印出来的话... 将会用掉 4500 万个墨盒&#xff0c;总计五十万公升的墨水。如果把这些墨水换成燃油&#xff0c;足够让747连飞 18,000 英里&#xff08;28,800 公里&#xff09;&#xff0c;从纽约不降…

ASP.NET Core中间件初始化探究

前言在日常使用ASP.NET Core开发的过程中我们多多少少会设计到使用中间件的场景&#xff0c;ASP.NET Core默认也为我们内置了许多的中间件&#xff0c;甚至有时候我们需要自定义中间件来帮我们处理一些请求管道过程中的处理。接下来&#xff0c;我们将围绕着以下几个问题来简单…

基于Python实现的微信好友数据分析

最近微信迎来了一次重要的更新&#xff0c;允许用户对”发现”页面进行定制。不知道从什么时候开始&#xff0c;微信朋友圈变得越来越复杂&#xff0c;当越来越多的人选择”仅展示最近三天的朋友圈”&#xff0c;大概连微信官方都是一脸的无可奈何。逐步泛化的好友关系&#xf…

java虚拟机和javaGC_Java虚拟机(三):GC算法和种类

一、介绍GC(Garbage Collection)&#xff0c;垃圾收集Java中&#xff0c;GC的对象是堆空间和永久区二、GC算法1. 引用计数法老牌垃圾回收算法通过引用计算来回收垃圾Java中未使用&#xff0c;使用者有COM、ActionScript3、Python实现&#xff1a;1> 对于一个对象A&#xff0…

看似简单但容易忽视的编程常识

这些年写了很多的代码、也读过很多的人写的代码&#xff0c;这几年&#xff0c;写代码的机会越来越少&#xff0c;但是每次写代码&#xff0c;感觉需要思考的东西越来越多&#xff0c;好的代码确实难能可贵&#xff0c;在国内业界中&#xff0c;好的软件不少&#xff0c;但是好…

ASP.NET : Kerberos网络认证过程

今天抽时间初略学习了一下kerberos网络认证过程&#xff0c;作为笔记整理如下&#xff0c;希望与大家分享。 一、Kerberos初步定义: Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”。Kerberos 是一种网络认证协议&#xff0c;其设计目标是通过密钥系统为客户…

MIPS投RISC-V是龙芯新征程的开始

日前&#xff0c;外媒报道MIPS Technologies宣布将放弃继续设计MIPS处理器&#xff0c;转向了RISC-V。在MIPS加盟RISC-V阵营后&#xff0c;有人鼓吹龙芯要完&#xff0c;但事实上&#xff0c;这完全是不了解龙芯具体情况的臆测。特别是在龙芯开发自主指令集LoongArch之后&#…

近期GitHub上最热门的开源项目(附链接)

2 月份 GitHub 上最热门的开源项目又出炉了&#xff0c;又有哪些新的项目挤进热门榜单了呢&#xff0c;一起来看看。1、nocodehttps://github.com/kelseyhightower/nocode Star 16256这是 2 月份新出炉的项目&#xff0c;可以说是 2018 年最火的佛系编程了&#xff0c;这个项目…

fb静态区域_fb 静态数据

在STAT中定义静态变量&#xff0c;并在INITIAL VALUE中设定初始值&#xff0c;静态变量的初始值会自动存如对应的背景数据块中回答者&#xff1a; 天晴09 - 初级工程师&nbsp&nbsp第9级2008-09-10 17:01:08你可以在fb中定义的时候直接输入初始值&#xff0c;也可以在ob…

9年没涨价,上太空……这些树莓派的冷知识你知道多少?

作为最成功的微型计算机&#xff0c;开源的树莓派&#xff08;Raspberry Pi&#xff09;在技术圈和学术界一直广受编程爱好者的好评&#xff0c;各路大神基于树莓派制作的新奇设备层出不穷&#xff0c;围绕这款微型计算机已经形成了一种独特的 DIY 文化&#xff0c;相关的开源软…

汇编语言入门教程

学习编程其实就是学高级语言&#xff0c;即那些为人类设计的计算机语言。但是&#xff0c;计算机不理解高级语言&#xff0c;必须通过编译器转成二进制代码&#xff0c;才能运行。学会高级语言&#xff0c;并不等于理解计算机实际的运行步骤。计算机真正能够理解的是低级语言&a…

轻量易用的微信Sdk发布——Magicodes.Wx.Sdk

概述最简洁最易于使用的微信Sdk&#xff0c;包括公众号Sdk、小程序Sdk、企业微信Sdk等&#xff0c;以及Abp VNext集成。名称NugetMagicodes.Wx.PublicAccount.SdkMagicodes.Wx.PublicAccount.Sdk.AspNetMagicodes.Wx.PublicAccount.Sdk.Abp如何贡献&#xff1f;如何快速封装一个…

数学界的高冷之王,N次拒绝巨额奖金:我穷,但是我不缺钱。。。

在现实生活中&#xff0c;你和谁在一起的确很重要&#xff0c;甚至能改变你的成长轨迹&#xff0c;决定你的人生成败。是否还记得&#xff0c;当你跟学霸做同学的时候&#xff0c;你总会莫名其妙跟他一起撸题目&#xff1b;当宿舍其他兄弟正在打游戏的时候&#xff0c;你也想着…

php-7.1.0,PHP 7.4.0 Alpha 1 v7.4.0 官方最新版

PHP团队近期宣布推出PHP 7.4.0首个版本PHP 7.4.0 Alpha 1&#xff0c;且下一个Alpha 2版本也在计划推出&#xff0c;不过作为早期测试版本&#xff0c;建议不要在生产环境中使用&#xff0c;想体验PHP最新运行逻辑的可以下载体验PHP 7.4.0 Alpha 1源码。基本简介PHP原始为Perso…

算法分析的正确姿势

一、前言在进一步学习数据结构与算法前&#xff0c;我们应该先掌握算法分析的一般方法。算法分析主要包括对算法的时空复杂度进行分析&#xff0c;但有些时候我们更关心算法的实际运行性能如何&#xff0c;此外&#xff0c;算法可视化是一项帮助我们理解算法实际执行过程的实用…