程序员的眼睛长时间盯着计算机屏幕,很容易导致眼睛疲劳,且在办公室看不了远处,于是想起了视疲劳缓解图,又叫远眺图。用程序员的方法,在自己喜欢的壁纸上绘制这个远眺图,把远眺图搬到桌面上。但是不能一直显示在桌面上,那样就看不到自己喜欢的壁纸了,将桌面壁纸设置为幻灯片放映,让远眺图每隔一段时间显示几分钟。因为工作时主要使用外接显示器,笔记本的显示屏经常是空闲的,当发现笔记本桌面出现了远眺图时,就可以抽空看一会儿。至于每隔多久显示多久,我的做法是将没有远眺图的壁纸复制几份,文件名使用数字顺序编号,至于复制几份,就结合幻灯片切换时间来定吧。

以下是该功能的Java代码:

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class AddDistantView {static final int initLineWidth = 45;        // 最外绿框线条宽度static final int reduceWidth = 1;           // 线条每次减少宽度static final int reduceEveryFewLayers = 1;  // 每几层减少一次线条宽度static final int taskbarWidth = 100;        // 任务栏宽度,远眺图不绘制到任务栏区域static final Position taskbarPosition = Position.Down; // 任务栏位置// 打开壁纸,绘制远眺图,并另存public static void main(String[] args) throws IOException {// 弹出文件选择框,选择壁纸文件FileDialog fileDialog = new FileDialog(new Frame(), "选择壁纸", FileDialog.LOAD);fileDialog.setVisible(true);if (fileDialog.getFile() == null) {System.exit(0);}String fileName = fileDialog.getFile();String path = fileDialog.getDirectory() + fileName;BufferedImage image = ImageIO.read(new File(path));paint(image, false);String formatName = fileName.substring(fileName.lastIndexOf(".") + 1);// 弹出文件选择框,选择保存路径fileDialog = new FileDialog(new Frame(), "选择保存路径", FileDialog.SAVE);fileDialog.setFile(fileName);fileDialog.setVisible(true);if (fileDialog.getFile() == null) {System.exit(0);}path = fileDialog.getDirectory() + fileDialog.getFile();ImageIO.write(image, formatName, new File(path));System.exit(0);}/*** 绘制远眺图* @param image* @param full*/public static void paint(BufferedImage image, boolean full) {Color[] color = new Color[2];// 比Color.GREEN鲜艳的绿色color[0] = new Color(0, 176, 80);color[1] = Color.WHITE;int lineWidth = initLineWidth, x = 0, y = 0, w, h;if (full) {// 全图绘制w = image.getWidth();h = image.getHeight();} else {// 正方形区域绘制,且不绘制到任务栏区域int areaWidth = taskbarPosition.isVertical() ? image.getWidth() : image.getWidth() - taskbarWidth;int areaHeight = taskbarPosition.isVertical() ? image.getHeight() - taskbarWidth : image.getHeight();w = Math.min(areaWidth, areaHeight);h = w;x = (image.getWidth() - w) / 2;y = (image.getHeight() - h) / 2;if (taskbarPosition.isVertical()) {y += taskbarPosition.value * taskbarWidth / 2;} else {x += taskbarPosition.value * taskbarWidth / 2;}}// 绘制绿白间隔框,每层线条宽度逐渐减少Graphics2D g2D = image.createGraphics();int i = 0;while (lineWidth > 0 && w > 0 && h > 0) {g2D.setColor(color[i % 2]);g2D.fillRect(x, y, w, h);i++;if (i % reduceEveryFewLayers == 0) {lineWidth -= reduceWidth;}x += lineWidth;y += lineWidth;w -= 2 * lineWidth;h -= 2 * lineWidth;}g2D.dispose();}/*** 任务栏位置枚举*/public enum Position {Up(1), Down(-1), Left(1), Right(-1);private int value;Position(int value) {this.value = value;}/*** 是否在垂直方向* @return*/public boolean isVertical() {return this.equals(Up) || this.equals(Down);}}
}

桌面添加视疲劳缓解图相关推荐

  1. html5添加到安卓桌面图标,Android向桌面添加快捷方式,使其指向特定的网页

    转载: http://www.cnblogs.com/wanyao/archive/2011/11/27/2265333.html 今天遇到一个需求,就是向桌面添加一个快捷方式,使点击时链接到特定的网 ...

  2. linux桌面添加软件快捷方式,如何在 Ubuntu 桌面手动添加应用快捷方式

    原标题:如何在 Ubuntu 桌面手动添加应用快捷方式 在这篇快速指南中,你将学到如何在 Ubuntu 桌面和其他使用 GNOME 桌面的发行版中添加应用图标. -- Abhishek Prakash ...

  3. 填写实验计算机桌面的系统图标有,Win8系统桌面添加计算机图标的图文步骤

    导读:鉴于win8众多新设计和新创意,让刚接触win8的朋友有点茫然,以往熟悉的操作方法和技巧似乎派不上用� T趙in8默认桌面中没有显示 "计算机"图标,因为win8中没有了开始 ...

  4. android url 快捷方式,Android向桌面添加快捷方式,使其指向特定的(URL)网页

    /* * 在桌面添加快捷方式 * @param      icon         快捷方式图标 * @param      name      快捷方式名称 * @param      uri    ...

  5. console.log()不显示结果_提醒低端电子显示屏易致视疲劳,OLED屏幕表现略好

    今晚报记者从天津市消协获悉,根据昨天下午中消协发布的比较试验显示,受试的青少年在进行30分钟的游戏任务后,对11款测试样品在不同指标上出现了显著视疲劳等情况. 13款测试样品包括5款手机.4款平板电脑 ...

  6. 蔡司数码视疲劳测试软件_居家办公期间,频繁使用电子数码产品小心患上这种眼病...

    作者:上海希玛瑞视眼科医院 疫情还没真正过去 全国多地尚未复工 目前复工的企业也多是要求员工居家办公 以前总担心假期太短不够玩 现在担心假期太长闲得慌 在家办公未必就比在办公室轻松,有人甚至忙到007 ...

  7. linux桌面添加第三方软件图标

    目录 linux桌面添加第三方软件图标 1. 方法步骤 1.1. 1.安装小书匠 1.2. 2.添加小书匠图标 1.3. 点击菜单,查看是否有图表 1.4. 附录<.desktop属性详解> ...

  8. windows桌面怎么添加计算机,Windows桌面添加我的电脑

    据etMarketShare最新公布的统计数据,Win10在桌面系统中的装机份额已达31.95%之多,比年初高了将近9%!Win10系统越来越受用户欢迎,但是其桌面布局与以往的传统的WinXP桌面布局 ...

  9. 计算机桌面怎么添加便签,桌面记事本,教您怎么在桌面添加便签

    说起便利贴,相信很多的朋友都非常的熟悉,不管是学生还是上班族,可能都会在自己的桌面上贴着几张便利贴,虽然似乎看着很方便,但其实我们还有更好更方便的方法,就是在桌面使用添加便签,可是怎么操作?下面,小编 ...

最新文章

  1. 可靠性测试设备技术含量_电子产品可靠性测试及设备
  2. 唯品会订单分库分表的实践总结以及关键步骤--转
  3. HTML5 文档头部
  4. dense sift matlab,一个 Dense SIFT 算法的 matlab 实现 | 学步园
  5. 美国国家安全原因致金沙江暂停收购飞利浦LED
  6. 百万数据查询优化技巧三十则
  7. java 配置dbcp_java – 使用DBCP进行Tomcat配置
  8. 使用github搭建网站
  9. html5 自动扣图,html5 canvas+js实现ps钢笔抠图
  10. java开发深圳平均工资_深圳2017平均工资100173元!!这次你又又又拖后腿了吗!?...
  11. 记录解决nonebot2中定时器报时区问题的错误
  12. 104键键盘布局高清示意图
  13. 科研卫星服务的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. Matlab中interp1()和interp2()的用法
  15. 公网远程访问内网群晖NAS 6.X【内网穿透】
  16. Tita 如何支持企业完成 360 环评
  17. 三国志手游挂机脚本 三国志辅助玩法介绍
  18. antd 表格树如何展开_antd design tree 怎样实现 :展开折叠全部树节点
  19. 谷歌问答上线 悲凉下的涌动
  20. Python使用OpenCV处理图片通道数

热门文章

  1. 软工作业2:时事点评-红芯浏览器事件
  2. 北邮太极计算机,北京邮电大学2015年高水平运动员体育专项测试武术测试办法及评分标准...
  3. 计算机网络的利与弊作文450字,电脑的利与弊作文400字
  4. 热电偶基础知识介绍-04
  5. html-js-css素材网站
  6. 微赞php.ini_安装 · 微赞操作手册 · 看云
  7. 解决kali不显示网卡
  8. 新消息:nmn对治疗帕金森的作用,nmn对脑部功效和作用
  9. 拓展欧几里得算法java实现
  10. 如何查看声卡型号alc版本号、型号