当前位置: 首页 > news >正文

自己做个国庆75周年头像生成器

 版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的

下载相关代码:【免费】《自己做个国庆75周年头像生成器》代码资源-CSDN文库

又是一年国庆节,今年使用国旗做头像的朋友不少,律师也说了,不违法。


所以,做这个程序也没关系吧。
程序设计界面

准备四张透明png图片到程序目录下的Img目录,分别用1-4.png命名。

主要代码就写在下面了:

Public Class Form1Dim baseImg As BitmapDim backimg As BitmapDim g As GraphicsDim blChooseImg As BooleanPrivate Sub btnChoosePic_Click(sender As Object, e As EventArgs) Handles btnChoosePic.ClickDim picname As StringIf ofdPic.ShowDialog = DialogResult.Cancel ThenExit SubEnd Ifpicname = ofdPic.FileNameTrybackimg = New Bitmap(picname)blChooseImg = TrueCall drawImg(cbMask.SelectedIndex)Catch ex As Exceptionbackimg = NothingEnd TryEnd SubPrivate Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadblChooseImg = FalsebaseImg = New Bitmap(pbCombine.Width, pbCombine.Height)g = Graphics.FromImage(baseImg)cbMask.SelectedIndex = 0AddHandler cbMask.SelectedIndexChanged, AddressOf cbMaskSelectedIndexChangedEnd SubPrivate Sub cbMaskSelectedIndexChanged(sender As Object, e As EventArgs)Call drawImg(cbMask.SelectedIndex)End SubPrivate Sub drawImg(ByVal maskid As Integer)If blChooseImg = False Then Exit Subg.DrawImage(backimg, New Rectangle(0, 0, pbCombine.Width, pbCombine.Height), New Rectangle(0, 0, backimg.Width, backimg.Height), GraphicsUnit.Pixel)Dim maskName As StringmaskName = Application.StartupPath & "\img\" & (maskid + 1).ToString & ".png"Dim maskImg As New Bitmap(maskName)g.DrawImage(maskImg, New Rectangle(0, 0, pbCombine.Width, pbCombine.Height), New Rectangle(0, 0, maskImg.Width, maskImg.Height), GraphicsUnit.Pixel)pbCombine.Image = baseImgEnd SubPrivate Sub pbCombine_MouseDown(sender As Object, e As MouseEventArgs) Handles pbCombine.MouseDownIf e.Button = MouseButtons.Right ThenIf blChooseImg = True ThencmsSave.Show(sender, e.Location)End IfEnd IfEnd SubPrivate Sub tsmSaveImg_Click(sender As Object, e As EventArgs) Handles tsmSaveImg.ClickDim savePath As StringIf sfdPic.ShowDialog = DialogResult.Cancel ThenExit SubEnd IfsavePath = sfdPic.FileNameTrybaseImg.Save(savePath)MessageBox.Show("保存完毕")Catch ex As ExceptionMessageBox.Show(ex.Message)End TryEnd SubPrivate Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosingg.Dispose()baseImg.Dispose()End Sub
End Class

代码太简单,不一一讲解了。
注意一个地方,窗体载入的时候为什么要:
      AddHandler cbMask.SelectedIndexChanged, AddressOf cbMaskSelectedIndexChanged
而不是直接使用 cbMask.SelectedIndexChanged 这个事件呢?

    Private Sub cbMask_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbMask.SelectedIndexChanged

    End Sub

请读者自己想一想。
运行时是这样滴:

简简单单的代码,我们不仅可以给自己做,也可以给朋友做头像了。
 

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看vb.net 教程 目录

http://www.lryc.cn/news/450236.html

相关文章:

  • 2k1000LA loongnix 安装java
  • 中信银行西安分行:构建科技金融体质 做好科技金融“大文章”
  • Linux系统性能调优技巧详解
  • MFC工控项目实例之十九手动测试界面输出信号切换
  • 数据结构——栈的基本操作
  • Chainlit集成LlamaIndex实现知识库高级检索(组合对象检索)
  • 万界星空科技铜拉丝行业MES系统,实现智能化转型
  • ECCV 2024 现场:参会者付高价、跨万里,却无法入场?
  • 使用rsync+jenkins实现服务自动部署全流程
  • python 实现decision tree决策树算法
  • 前端大模型入门:实战篇之Vue3+Antdv+transformers+本地模型实现增强搜索
  • 《向量数据库指南》——Fivetran 的 Partner SDK:构建自定义连接器和目标
  • 微信小程序的 button 标签的边框如何去除?
  • 20240926 关于Goland处理wsl-GOROOT原理猜测
  • Anki 学习日记 - 卡片模版 - 单选ABCD(纯操作)
  • 钉钉x昇腾:用AI一体机撬动企业数字资产智能化
  • 【C/C++】 秋招常考面试题最全总结(让你有一种相见恨晚的感觉)
  • CSS面试真题 part1
  • 针对考研的C语言学习(定制化快速掌握重点5)
  • 构建高效房屋租赁系统:Spring Boot应用
  • 学习单片机编程和硬件设计步骤
  • .net Framework 4.6 WebAPI 使用Hangfire
  • 两个向量所在平面的法线,外积,叉积,行列式
  • C++之 友元重载 以及最常用的几种友元函数
  • 动态规划(3)——dp多状态问题Ⅰ
  • 在Mac电脑上安装adb环境
  • 分糖果C++
  • Spring中如何为静态变量注入值
  • HTML5实现唐朝服饰网站模板源码
  • ESXI识别USB设备