本来上周双休日没什么事情,准备干点遗留了很久的正经事,结果半途忍不住手贱看新闻,于是被11.28事件触动,随大流的针对棒子及棒子粉抽疯了两天。
没想到到星期一上班脖子就不得劲,顺便查了点资料,发现个山寨版的颈椎矫正图,觉得挺有意思。
如下图: 于是回家后想到自己也做个玩。
问题是,咱爷们不说程序员吧,好歹也是个垒码的,直接PS文字图未免有碍观瞻,于是抽空写了个Java自动生成版的。
代码如下:
- packageorg.test;
-
- importjava.awt.AlphaComposite;
- importjava.awt.Canvas;
- importjava.awt.Color;
- importjava.awt.Font;
- importjava.awt.Frame;
- importjava.awt.Graphics;
- importjava.awt.Graphics2D;
- importjava.awt.Image;
- importjava.awt.RenderingHints;
- importjava.awt.event.WindowAdapter;
- importjava.awt.event.WindowEvent;
- importjava.awt.image.BufferedImage;
- importjava.io.File;
- importjava.io.IOException;
-
- importjavax.imageio.ImageIO;
-
- publicclassMessageImageextendsCanvas{
-
- privatestaticfinallongserialVersionUID=1L;
-
- privateBufferedImagefontImage;
-
- privateGraphics2Dg2d;
- privateImagebackImage;
- finalstaticprivateintWIDTH=600;
-
- finalstaticprivateintHEIGHT=480;
-
-
- publicMessageImage(finalStringmessages){
-
- fontImage=newBufferedImage(WIDTH,HEIGHT,2);
- g2d=fontImage.createGraphics();
- try{
- backImage=ImageIO.read(newFile("back.png"));
- }catch(IOExceptione){
- e.printStackTrace();
- }
- g2d.drawImage(backImage,0,0,null);
- setAlpha(g2d,0.7);
- intsize=25;
- intnewLine=(WIDTH/size)-10;
- char[]messageChars=messages.toCharArray();
- booleand=true;
- StringBuildersbr=newStringBuilder();
- intcount=0;
- intlen=messageChars.length-1;
- StringfontStyle="幼圆";
- Colorcolor=Color.white;
- for(inti=0,j=0;i<=len;i++,j++){
- sbr.append(messageChars[i]);
- if(j==newLine||(messageChars[i]=='/n')){
- g2d.drawImage(createImageMessages(1,false,sbr.toString(),
- color,fontStyle,1,size,d),count+=30,
- (HEIGHT-(sbr.length()*size))-(size*4),null);
- d=!d;
- sbr.delete(0,sbr.length());
- j=0;
- }elseif(i==len){
- g2d.drawImage(createImageMessages(1,false,sbr.toString(),
- color,fontStyle,1,size,d),count+=30,
- (HEIGHT-(sbr.length()*size))-(size*4),null);
- }
- }
- setAlpha(g2d,0.6);
- Stringmes="Java版颈椎自动矫正图";
- fontStyle="华文新魏";
- size=20;
- g2d.drawImage(createImageMessages(0,true,mes,Color.red,fontStyle,
- 1,size,false),WIDTH-(mes.length()*size)-(size*2),
- HEIGHT-(size*2),null);
- }
-
- publicstaticBufferedImagecreateImageMessages(finalintaspect,
- finalbooleanisRow,finalStringmessages,finalColorcolor,
- finalStringname,finalintstyle,finalintsize,finalbooleand){
- finalintflength=messages.length();
- finalintnowSize=size*flength;
- BufferedImagefontImages;
- if(isRow)
- fontImages=newBufferedImage(nowSize,size,2);
- else
- fontImages=newBufferedImage(size,nowSize,2);
- Graphics2Dgraphics2d=fontImages.createGraphics();
- char[]messageChars=messages.toCharArray();
- if(d){
- char[]temp=newchar[flength];
- for(inti=0,j=flength-1;i<flength;i++,j--){
- temp[j]=messageChars[i];
- }
- messageChars=temp;
- }
- if(isRow)
- for(inti=0;i<flength;i++){
- graphics2d.drawImage(createImageMessage(aspect,
- messageChars[i],color,name,style,size,d),
- i*size,0,null);
- }
- else
- for(inti=0;i<flength;i++){
- graphics2d.drawImage(createImageMessage(aspect,
- messageChars[i],color,name,style,size,d),0,i
- *size,null);
- }
- graphics2d.dispose();
- System.gc();
- returnfontImages;
- }
-
- publicstaticBufferedImagecreateImageMessage(finalintaspect,
- finalcharmessage,finalColorcolor,finalStringname,
- finalintstyle,finalintsize,finalbooleand){
- finalintnowSize=size+1;
- BufferedImagefontImage=newBufferedImage(nowSize,nowSize,2);
- Graphics2Dgraphics2d=fontImage.createGraphics();
- graphics2d.setColor(color);
- graphics2d.setFont(newFont(name,style,size));
- RenderingHintshints=newRenderingHints(
- RenderingHints.KEY_TEXT_ANTIALIASING,
- RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
- hints.put(RenderingHints.KEY_DITHERING,
- RenderingHints.VALUE_DITHER_ENABLE);
- hints.put(RenderingHints.KEY_RENDERING,
- RenderingHints.VALUE_RENDER_SPEED);
- hints.put(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- hints.put(RenderingHints.KEY_FRACTIONALMETRICS,
- RenderingHints.VALUE_FRACTIONALMETRICS_ON);
- hints.put(RenderingHints.KEY_COLOR_RENDERING,
- RenderingHints.VALUE_COLOR_RENDER_QUALITY);
- hints.put(RenderingHints.KEY_DITHERING,
- RenderingHints.VALUE_DITHER_DISABLE);
- graphics2d.setRenderingHints(hints);
- graphics2d.drawString(String.valueOf(message),0,size-3);
- graphics2d.dispose();
- switch(aspect){
- case0:
- break;
- case1:
- fontImage=MessageImage.rotateImage(fontImage,90,d);
- break;
- case2:
- fontImage=MessageImage.rotateImage(fontImage,180,d);
- break;
- case3:
- fontImage=MessageImage.rotateImage(fontImage,360,d);
- break;
- }
- returnfontImage;
- }
-
- publicvoidpaint(Graphicsg){
- g.drawImage(fontImage,0,0,null);
- }
-
- publicstaticBufferedImagerotateImage(finalBufferedImageimage){
- intw=image.getWidth();
- inth=image.getHeight();
- BufferedImageimg;
- Graphics2Dgraphics2d;
- (graphics2d=(img=newBufferedImage(w,h,image.getColorModel()
- .getTransparency())).createGraphics()).drawImage(image,0,0,
- w,h,w,0,0,h,null);
- graphics2d.dispose();
- returnimg;
- }
-
- publicstaticBufferedImagerotateImage(finalBufferedImageimage,
- finalintangdeg,finalbooleand){
- intw=image.getWidth();
- inth=image.getHeight();
- inttype=image.getColorModel().getTransparency();
- BufferedImageimg;
- Graphics2Dgraphics2d;
- (graphics2d=(img=newBufferedImage(w,h,type)).createGraphics())
- .setRenderingHint(RenderingHints.KEY_INTERPOLATION,
- RenderingHints.VALUE_INTERPOLATION_BILINEAR);
- graphics2d.rotate(d?-Math.toRadians(angdeg):Math.toRadians(angdeg),
- w/2,h/2);
- graphics2d.drawImage(image,0,0,null);
- graphics2d.dispose();
- returnimg;
- }
-
- finalstaticpublicvoidsetAlpha(finalGraphics2Dg,finaldoubled){
- AlphaCompositealphacomposite=AlphaComposite
- .getInstance(3,(float)d);
- g.setComposite(alphacomposite);
- }
-
- publicstaticvoidmain(String[]args){
- java.awt.EventQueue.invokeLater(newRunnable(){
- publicvoidrun(){
- Frameframe=newFrame();
- frame.addWindowListener(newWindowAdapter(){
- publicvoidwindowClosing(WindowEvente){
- System.exit(0);
- }
- });
- frame
- .add(newMessageImage(
- "每天面对计算机/n不是垒码、就是泡论坛、再不然就是和脑残作斗争,爆个哈韩吧,攻击个棒子网什么的,再闲时就写写Blog,转转Google,"
- +"总之24小时离不开电脑,离不开网络(已被纳入我国精神病症状|||),长时间不活动,这颈椎可怎么受的了?没办法,想点办法解决吧。"
- +"最近有人说图片能治疗颈椎病,我却偏不信那个邪,就几句话能费人多大的力气去看?说到底还真能累死活人不成?"
- +"这左转右绕上窜下跳的,除了费点眼睛,怎么可能把脖子一块运动起来?您说是不是这道理?"));
- frame.setSize(WIDTH+5,HEIGHT+25);
- frame.setResizable(false);
- frame.setTitle("Java版颈椎自动矫正图");
- frame.setLocationRelativeTo(null);
- frame.setVisible(true);
- }
- });
- }
-
- }
-
效果图如下: 仔细说起来,这就和各大小说门户生成图片版小说的原理一般无二,毫无技术难度可言,不过毕竟写了,也就丢出来在Blog凑个数。
那位有时间的话(或者等以后鄙人闲的没事),可以做个自动导出,弄套资治通鉴全文之类的图片做颈椎矫正,试验下连续的看完整本颈椎是轻松了,还是碎掉了……
分享到:
相关推荐
颈椎X光图片数据集是深度学习和医学图像领域的重要资源,它包含五百多张人体颈椎的X光图像,这些图像可以用于训练和测试各种算法,尤其是那些基于深度学习的模型。在医疗诊断、疾病预测以及治疗规划中,精确的图像...
老是趴电脑,可要注意了; 颈椎要活动,不要生病了。
### 颈椎病防治手册知识点详析 #### 一、颈椎病的定义与流行情况 颈椎病(Cervical Spondylosis)是一种常见的疾病,患病率大约为3.8%-17.6%,男性患者略多于女性患者,比例约为6:1。根据第二届全国颈椎病专题座谈...
1. **定时提醒**:软件能够根据用户设定的时间间隔,如每小时或每两小时,自动提醒用户进行颈椎操。这样可以确保用户不会因为忙碌而忘记做操。 2. **动作指导**:`action.png`可能是一个展示颈椎操动作的图片或动画...
设计和应用矫正治疗颈椎病的牵引装置是医疗技术领域的重要进步,它能够帮助患者缓解疼痛,改善颈椎功能。本文将深入探讨这种牵引装置的设计原理、工作方式以及在治疗颈椎病中的作用。 牵引疗法是一种历史悠久的治疗...
标题中的“行业分类-设备装置-预防颈椎病自动控制左右方向移动平台”表明这是一个与医疗健康和机械设备相关的项目,特别关注预防颈椎病的功能。设备通过自动控制左右方向的移动,旨在帮助用户改善颈部运动,减轻颈椎...
为了应对这一问题,温州医学院的研究团队设计出了一种智能坐姿矫正眼镜,旨在通过技术手段帮助人们预防颈椎病。这种眼镜的核心技术是MMA7260重力感应芯片,这种芯片基于压电效应,可以将佩戴者头部的空间位置变化...
本设计装置——预防颈椎病的自动控制升降平台,旨在通过科技手段改善这一问题,提供一个健康的工作环境,降低颈椎病的发生率。平台采用自动化控制技术,能够根据用户的身高、视线角度以及工作姿势进行适时的调整,...
在"颈椎操动图GIF"这个压缩包文件中,很可能包含了一系列颈椎操的动作图解,以GIF动态图的形式呈现,使得用户能够更直观地理解和学习每个动作。动图通常比文字或静图更能生动地展示动作的连续性和正确姿势,帮助人们...
颈椎保健操是针对长期坐在电脑前工作的程序员们特别设计的一套运动,旨在缓解颈部压力,预防颈椎病。作为程序员,我们的工作性质往往使我们长时间保持同一姿势,这给颈椎带来了极大的负担,容易导致颈椎疲劳、僵硬...
【标题】:“机器人辅助颈椎后路椎弓根螺钉置入手术治疗颈椎病的置钉精确度与临床疗效” 【摘要】:本研究探讨了使用机器人辅助颈椎后路椎弓根螺钉置入手术治疗颈椎病的精确度及临床效果,并与传统徒手手术进行了...
“颈椎病预防治疗大师”是世界上第一款,也是唯一一款预防和治疗颈椎病的共享软件。使用他可以强制你每天按设定的频率转动你的脖子。通过每天坚持对脖子的锻炼,可以有效的预防“颈椎病”。 这一切都只要短短的3-4...
程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病...
颈椎病是一种常见的疾病,主要影响颈部的骨骼、软组织和神经功能。颈椎病的发生与现代人的生活方式密切相关,长时间保持同一姿势、颈部劳损以及不良睡眠习惯都可能导致颈椎问题。治疗颈椎病的方法多种多样,其中非...
颈椎病的鉴别诊断包括与椎动脉型颈椎病、神经根型颈椎病、脊髓型颈椎病、交感神经型颈椎病和颈型颈椎病等的鉴别诊断。需要根据不同类型的颈椎病的症状和体征进行鉴别诊断。 在诊疗方面,颈椎病的治疗主要包括中医...
颈椎病是一种常见的疾病,主要由颈椎间盘和椎间关节的退行性变引起,可能导致脊髓、神经根、血管受损,从而表现出一系列临床症状。根据病因和临床表现,颈椎病可分为神经根型、脊髓型、交感型、椎动脉型以及混合型。...
【新冠肺炎疫情期间基于“互联网 医疗”的认知行为方案对颈椎病颈痛患者的疗效分析】 本文是一篇关于在新冠肺炎疫情期间,利用“互联网+医疗”模式实施的认知行为方案对颈椎病颈痛患者疗效的研究报告。该研究旨在...
关于颈椎病的调查报告范文参考.doc