如何利用Matlab复刻举牌加油小人生成器
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要为大家展示了"如何利用Matlab复刻举牌加油小人生成器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何利用Matlab复刻举牌加油小人生成
千家信息网最后更新 2026年11月01日如何利用Matlab复刻举牌加油小人生成器
这篇文章主要为大家展示了"如何利用Matlab复刻举牌加油小人生成器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何利用Matlab复刻举牌加油小人生成器"这篇文章吧。
突然发现cla函数也可以应用到app designer控件上,因而对部分内容做出更改。
手痒,用matlab app designer复刻了一款举牌加油小人生成器,效果如下:
该程序可以生成正方形和长方形举牌小人,并且可以自己设置背景颜色(点击那些有颜色的小框框),点击绿色旋转按钮可以刷新生成的图片。
目前需要存图还是需要通过uiaxes自带的toolbar(下图右上角所示):
使用该程序需要小人的素材包,我已经将素材整理为materials.mat文件,网盘下载链接如下:
链接:https://pan.baidu.com/s/1ISloOsq8bIVDjm8TzRPlKw
提取码:1234
使用时需要把materials.mat和m文件放在同一文件夹
完整代码
function upupglobal textMsg bkgColor colorList axesTypeglobal textAreatextMsg=[];axesType=2;bkgColor=[1,1,1];colorList=[0.9000 0 0.0700 0.9200 0.3300 0.0800 0.9600 0.6200 0.7500 0.9600 0.9400 0.5500 0.7600 0.8400 0.2500 0.3800 0.7600 0.7300 0.4700 0.8100 0.9400 0.6000 0.0500 0.4900 1 1 1 ];%load pic and create pic ==================================================materials=load('materials.mat');if ~exist('materials','dir') mkdir('materials');endfor i=1:size(colorList,1) Rc=zeros(60,60);Rc(11:50,11:50)=255.*colorList(i,1); Gc=zeros(60,60);Gc(11:50,11:50)=255.*colorList(i,2); Bc=zeros(60,60);Bc(11:50,11:50)=255.*colorList(i,3); cPic(:,:,1)=Rc;cPic(:,:,2)=Gc;cPic(:,:,3)=Bc; imwrite(uint8(cPic),['materials\bkg',num2str(i),'.png']) endimwrite(materials.imgSet.cover,'materials\cover.jpg')imwrite(materials.imgSet.square,'materials\square.jpg')imwrite(materials.imgSet.refresh.CData,'materials\refresh.png','Alpha',materials.imgSet.refresh.AData)%==========================================================================upFig=uifigure('units','pixels',... 'position',[320 50 400 600],... 'Numbertitle','off',... 'menubar','none',... 'resize','off',... 'name','upup',... 'color',[0.93 0.6 0]);%==========================================================================textAreaLabel=uilabel(upFig);textAreaLabel.Position=[55 445 290 100];textAreaLabel.Text='';textAreaLabel.BackgroundColor=[0,0,0];textArea=uitextarea(upFig,'ValueChangedFcn',@changeText);textArea.Position=[60 450 280 90];textArea.FontSize=23;%text label hdl part=======================================================textLabel_1=uilabel(upFig);textLabel_1.Position=[52 517 296 106];textLabel_1.Text='YOUR MESSAGE HERE';textLabel_1.FontSize=24;textLabel_1.FontWeight='bold';textLabel_1.HorizontalAlignment='center';textLabel_2=uilabel(upFig);textLabel_2.Position=[52 367 296 106];textLabel_2.Text='BACKGROUND COLORS';textLabel_2.FontSize=24;textLabel_2.FontWeight='bold';textLabel_2.HorizontalAlignment='center';textLabel_3=uilabel(upFig);textLabel_3.Position=[10 310 60 50];textLabel_3.Text='SIZE';textLabel_3.FontSize=20;textLabel_3.FontWeight='bold';textLabel_3.HorizontalAlignment='center';%bkg color hdl part========================================================for i=1:size(colorList,1) CL(i)=uiimage(upFig); CL(i).Position=[10+i*35,365,30,30]; CL(i).UserData=i; CL(i).ImageSource=['materials\bkg',num2str(i),'.png'];endset(CL,'ImageClickedFcn',@bkgChange)%reset Size hdl part=======================================================sizeBtn(1)=uiimage(upFig);sizeBtn(1).Position=[70 320 168 30];sizeBtn(1).UserData=1;sizeBtn(1).ImageSource='materials\cover.jpg';sizeBtn(2)=uiimage(upFig);sizeBtn(2).Position=[245 320 80 30];sizeBtn(2).UserData=2;sizeBtn(2).ImageSource='materials\square.jpg';set(sizeBtn,'ImageClickedFcn',@sizeChange)%==========================================================================refreshBtn=uiimage(upFig);refreshBtn.Position=[340 317.5 35 35];refreshBtn.ImageSource='materials\refresh.png';set(refreshBtn,'ImageClickedFcn',@changeText)%==========================================================================upAx=uiaxes('Units','pixels',... 'parent',upFig,... 'Position',[50 10 300 300],... 'Color',[0.99 0.99 0.99],... 'Box','on', ... 'XTick',[],... 'YTick',[],... 'XLimMode','manual',... 'YLimMode','manual',... 'XLim',[0 300],... 'YLim',[0 300], ... 'BackgroundColor',[0,0,0],... 'YDir','reverse');hold(upAx,'on')%========================================================================== function bkgChange(~,event) objNum=event.Source.UserData; upAx.Color=colorList(objNum,:); end function sizeChange(~,event) axesType=event.Source.UserData; switch axesType case 1 upAx.Position=[10 120 380 141]; upAx.XLim=[0 380]; upAx.YLim=[0 141]; case 2 upAx.Position=[50 10 300 300]; upAx.XLim=[0 300]; upAx.YLim=[0 300]; end end function changeText(~,~) cla(upAx)% hold(upAx,'off')% image(upAx,[-1,0],[-1,0],ones(1,1,3),'visible','off');% hold(upAx,'on') textMsg=textArea.Value; for ii=1:length(textMsg) tempStr=textMsg{ii}; for jj=1:length(tempStr) if tempStr(jj)~=' ' roleType=randi(24); image(upAx,[0,103*0.4]+110+28*(jj-1)-27*(ii-1),... [0,198*0.4]+10+12*(jj-1)+22*(ii-1),... materials.imgSet.CData{roleType},... 'AlphaData',materials.imgSet.AData{roleType},... 'Interpolation','bilinear') text(upAx,21+110+28*(jj-1)-27*(ii-1),... 10+10+12*(jj-1)+22*(ii-1),... tempStr(jj),'rotation',-38,'FontSize',16,... 'FontWeight','bold','Color',[0.4,0.3,0.3],... 'FontAngle','italic','HorizontalAlignment','center'); end end end endend另:完整素材包+mat文件+m文件可以在下面下载
百度网盘链接:https://pan.baidu.com/s/1F6Z3_-91_OKtV2zjQUg47Q
注:代码和素材仅作学习用途,勿做他用
另
若matlab是版本为R2016a以后,R2019a之前,会因为uiimage未被推出而无法正常使用,可以尝试以下代码,该代码依旧需要materials.mat和m文件在同一文件夹:
function upupUiBtnglobal textMsg bkgColor colorList axesTypeglobal textAreatextMsg=[];axesType=2;bkgColor=[1,1,1];colorList=[0.9000 0 0.0700 0.9200 0.3300 0.0800 0.9600 0.6200 0.7500 0.9600 0.9400 0.5500 0.7600 0.8400 0.2500 0.3800 0.7600 0.7300 0.4700 0.8100 0.9400 0.6000 0.0500 0.4900 1 1 1 ];%load pic and create pic ==================================================materials=load('materials.mat');if ~exist('materials','dir') mkdir('materials');endfor i=1:size(colorList,1) Rc=zeros(60,60);Rc(11:50,11:50)=255.*colorList(i,1); Gc=zeros(60,60);Gc(11:50,11:50)=255.*colorList(i,2); Bc=zeros(60,60);Bc(11:50,11:50)=255.*colorList(i,3); cPic(:,:,1)=Rc;cPic(:,:,2)=Gc;cPic(:,:,3)=Bc; imwrite(uint8(cPic),['materials\bkg',num2str(i),'.png']) endimwrite(materials.imgSet.cover,'materials\cover.jpg')imwrite(materials.imgSet.square,'materials\square.jpg')imwrite(materials.imgSet.refresh.CData,'materials\refresh.png','Alpha',materials.imgSet.refresh.AData)%==========================================================================upFig=uifigure('units','pixels',... 'position',[320 50 400 600],... 'Numbertitle','off',... 'menubar','none',... 'resize','off',... 'name','upup',... 'color',[0.93 0.6 0]);%==========================================================================textAreaLabel=uilabel(upFig);textAreaLabel.Position=[55 445 290 100];textAreaLabel.Text='';textAreaLabel.BackgroundColor=[0,0,0];textArea=uitextarea(upFig,'ValueChangedFcn',@changeText);textArea.Position=[60 450 280 90];textArea.FontSize=23;%text label hdl part=======================================================textLabel_1=uilabel(upFig);textLabel_1.Position=[52 517 296 106];textLabel_1.Text='YOUR MESSAGE HERE';textLabel_1.FontSize=24;textLabel_1.FontWeight='bold';textLabel_1.HorizontalAlignment='center';textLabel_2=uilabel(upFig);textLabel_2.Position=[52 367 296 106];textLabel_2.Text='BACKGROUND COLORS';textLabel_2.FontSize=24;textLabel_2.FontWeight='bold';textLabel_2.HorizontalAlignment='center';textLabel_3=uilabel(upFig);textLabel_3.Position=[10 310 60 50];textLabel_3.Text='SIZE';textLabel_3.FontSize=20;textLabel_3.FontWeight='bold';textLabel_3.HorizontalAlignment='center';%bkg color hdl part========================================================for i=1:size(colorList,1) CL(i)=uibutton(upFig); CL(i).Position=[10+i*35,365,30,30]; CL(i).BackgroundColor=[0 0 0]; CL(i).Text=''; CL(i).UserData=i; CL(i).Icon=['materials\bkg',num2str(i),'.png'];endset(CL,'ButtonPushedFcn',@bkgChange)%reset Size hdl part=======================================================sizeBtn(1)=uibutton(upFig);sizeBtn(1).Position=[80 320 145 32];sizeBtn(1).UserData=1;sizeBtn(1).Text='';sizeBtn(1).BackgroundColor=[0 0 0];sizeBtn(1).Icon='materials\cover.jpg';sizeBtn(2)=uibutton(upFig);sizeBtn(2).Position=[235 320 78 32];sizeBtn(2).UserData=2;sizeBtn(2).Text='';sizeBtn(2).BackgroundColor=[0 0 0];sizeBtn(2).Icon='materials\square.jpg';set(sizeBtn,'ButtonPushedFcn',@sizeChange)refreshBtn=uibutton(upFig);refreshBtn.Position=[330 318 35 35];refreshBtn.Text='';refreshBtn.BackgroundColor=[0.93 0.6 0];refreshBtn.Icon='materials\refresh.png';set(refreshBtn,'ButtonPushedFcn',@changeText)%==========================================================================upAx=uiaxes('Units','pixels',... 'parent',upFig,... 'Position',[50 10 300 300],... 'Color',[0.99 0.99 0.99],... 'Box','on', ... 'XTick',[],... 'YTick',[],... 'XLimMode','manual',... 'YLimMode','manual',... 'XLim',[0 300],... 'YLim',[0 300], ... 'BackgroundColor',[0,0,0],... 'YDir','reverse');hold(upAx,'on')%========================================================================== function bkgChange(~,event) objNum=event.Source.UserData; upAx.Color=colorList(objNum,:); end function sizeChange(~,event) axesType=event.Source.UserData; switch axesType case 1 upAx.Position=[10 120 380 141]; upAx.XLim=[0 380]; upAx.YLim=[0 141]; case 2 upAx.Position=[50 10 300 300]; upAx.XLim=[0 300]; upAx.YLim=[0 300]; end end function changeText(~,~) cla(upAx)% hold(upAx,'off')% image(upAx,[-1,0],[-1,0],ones(1,1,3),'visible','off');% hold(upAx,'on') textMsg=textArea.Value; for ii=1:length(textMsg) tempStr=textMsg{ii}; for jj=1:length(tempStr) if tempStr(jj)~=' ' roleType=randi(24); image(upAx,[0,103*0.4]+110+28*(jj-1)-27*(ii-1),... [0,198*0.4]+10+12*(jj-1)+22*(ii-1),... materials.imgSet.CData{roleType},... 'AlphaData',materials.imgSet.AData{roleType},... 'Interpolation','bilinear') text(upAx,21+110+28*(jj-1)-27*(ii-1),... 10+10+12*(jj-1)+22*(ii-1),... tempStr(jj),'rotation',-38,'FontSize',16,... 'FontWeight','bold','Color',[0.4,0.3,0.3],... 'FontAngle','italic','HorizontalAlignment','center'); end end end endend非uiimage版按钮长这样:
以上是"如何利用Matlab复刻举牌加油小人生成器"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
小人
生成
生成器
代码
内容
素材
篇文章
链接
学习
按钮
文件夹
程序
颜色
帮助
下图
他用
函数
图片
控件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技有限公司
保险科技 互联网保险
互联网巨头反垄断金融科技
互联网与科技发展
北京互联网科技公司
互联网医疗科技
互联网科技作文
有木互联网科技
广州凡科互联网科技
上游互联网科技
居家互联网科技有限公司
科技与互联网哪个更好
未来五年的互联网科技
互联网媒体平台算高科技产业
有人说阿里系是互联网科技企业
普陀区互联网教育科技管理办法
广西科技产业互联网是什么
恒生互联网科技趋势
六子台科技互联网展会
知域互联网科技有限公司官网
蓝思科技飞鸽互联网
互联网科技工作委员会毛军
科技和互联网公司
互联网与新科技
内蒙古九一互联网科技
美国互联网科技实力
上海同邻互联网科技有限公司规模
上海互联网科技园景观
互联网科技创业计划的风险分析
互联网高科技绘画