桌面添加视疲劳缓解图
程序员的眼睛长时间盯着计算机屏幕,很容易导致眼睛疲劳,且在办公室看不了远处,于是想起了视疲劳缓解图,又叫远眺图。用程序员的方法,在自己喜欢的壁纸上绘制这个远眺图,把远眺图搬到桌面上。但是不能一直显示在桌面上,那样就看不到自己喜欢的壁纸了,将桌面壁纸设置为幻灯片放映,让远眺图每隔一段时间显示几分钟。因为工作时主要使用外接显示器,笔记本的显示屏经常是空闲的,当发现笔记本桌面出现了远眺图时,就可以抽空看一会儿。至于每隔多久显示多久,我的做法是将没有远眺图的壁纸复制几份,文件名使用数字顺序编号,至于复制几份,就结合幻灯片切换时间来定吧。
以下是该功能的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);}}
}
桌面添加视疲劳缓解图相关推荐
- html5添加到安卓桌面图标,Android向桌面添加快捷方式,使其指向特定的网页
转载: http://www.cnblogs.com/wanyao/archive/2011/11/27/2265333.html 今天遇到一个需求,就是向桌面添加一个快捷方式,使点击时链接到特定的网 ...
- linux桌面添加软件快捷方式,如何在 Ubuntu 桌面手动添加应用快捷方式
原标题:如何在 Ubuntu 桌面手动添加应用快捷方式 在这篇快速指南中,你将学到如何在 Ubuntu 桌面和其他使用 GNOME 桌面的发行版中添加应用图标. -- Abhishek Prakash ...
- 填写实验计算机桌面的系统图标有,Win8系统桌面添加计算机图标的图文步骤
导读:鉴于win8众多新设计和新创意,让刚接触win8的朋友有点茫然,以往熟悉的操作方法和技巧似乎派不上用� T趙in8默认桌面中没有显示 "计算机"图标,因为win8中没有了开始 ...
- android url 快捷方式,Android向桌面添加快捷方式,使其指向特定的(URL)网页
/* * 在桌面添加快捷方式 * @param icon 快捷方式图标 * @param name 快捷方式名称 * @param uri ...
- console.log()不显示结果_提醒低端电子显示屏易致视疲劳,OLED屏幕表现略好
今晚报记者从天津市消协获悉,根据昨天下午中消协发布的比较试验显示,受试的青少年在进行30分钟的游戏任务后,对11款测试样品在不同指标上出现了显著视疲劳等情况. 13款测试样品包括5款手机.4款平板电脑 ...
- 蔡司数码视疲劳测试软件_居家办公期间,频繁使用电子数码产品小心患上这种眼病...
作者:上海希玛瑞视眼科医院 疫情还没真正过去 全国多地尚未复工 目前复工的企业也多是要求员工居家办公 以前总担心假期太短不够玩 现在担心假期太长闲得慌 在家办公未必就比在办公室轻松,有人甚至忙到007 ...
- linux桌面添加第三方软件图标
目录 linux桌面添加第三方软件图标 1. 方法步骤 1.1. 1.安装小书匠 1.2. 2.添加小书匠图标 1.3. 点击菜单,查看是否有图表 1.4. 附录<.desktop属性详解> ...
- windows桌面怎么添加计算机,Windows桌面添加我的电脑
据etMarketShare最新公布的统计数据,Win10在桌面系统中的装机份额已达31.95%之多,比年初高了将近9%!Win10系统越来越受用户欢迎,但是其桌面布局与以往的传统的WinXP桌面布局 ...
- 计算机桌面怎么添加便签,桌面记事本,教您怎么在桌面添加便签
说起便利贴,相信很多的朋友都非常的熟悉,不管是学生还是上班族,可能都会在自己的桌面上贴着几张便利贴,虽然似乎看着很方便,但其实我们还有更好更方便的方法,就是在桌面使用添加便签,可是怎么操作?下面,小编 ...
最新文章
- 可靠性测试设备技术含量_电子产品可靠性测试及设备
- 唯品会订单分库分表的实践总结以及关键步骤--转
- HTML5 文档头部
- dense sift matlab,一个 Dense SIFT 算法的 matlab 实现 | 学步园
- 美国国家安全原因致金沙江暂停收购飞利浦LED
- 百万数据查询优化技巧三十则
- java 配置dbcp_java – 使用DBCP进行Tomcat配置
- 使用github搭建网站
- html5 自动扣图,html5 canvas+js实现ps钢笔抠图
- java开发深圳平均工资_深圳2017平均工资100173元!!这次你又又又拖后腿了吗!?...
- 记录解决nonebot2中定时器报时区问题的错误
- 104键键盘布局高清示意图
- 科研卫星服务的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Matlab中interp1()和interp2()的用法
- 公网远程访问内网群晖NAS 6.X【内网穿透】
- Tita 如何支持企业完成 360 环评
- 三国志手游挂机脚本 三国志辅助玩法介绍
- antd 表格树如何展开_antd design tree 怎样实现 :展开折叠全部树节点
- 谷歌问答上线 悲凉下的涌动
- Python使用OpenCV处理图片通道数