首页 文章 精选 留言 我的

精选列表

搜索[镜像无法拉取],共10000篇文章
优秀的个人博客,低调大师

鼠标像素拾器的实现(坐标&RGB)

环境:jdk1.2+包: import java.awt.BorderLayout;import java.awt.Color; import java.awt.Font;import java.awt.Point;import java.awt.Robot;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Timer;import java.util.TimerTask;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.border.EmptyBorder; 主类:MousePixInfo3(main内实例化) 第一步:设计界面构造函数内渲染jframe过程略.. 第二步:调用标准库: 利用Robot.getPixelColor(x,y)方法得到Color对象; 利用MouseInfo.getPointerInfo().getLocation()得到Point对象; 利用Integer.toHexString(int i)方法将rgb值转成更易读的十六进制; 利用Timer.schedule(TimerTask timerTask)周期刷新像素信息; 第三步:扩展功能: 1.jframe置顶(Jframe.setAlwaysOnTop(true))(非聚焦) 2.esc键退出(System.exit(0)) 3.空格暂停(timer.cancel()) 4.L键将坐标值存入系统剪切板 5.C键将颜色值存入系统剪切板 源码: package test; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.Point; import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Timer; import java.util.TimerTask; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; public class MousePixInfo3 extends JFrame { /** * */ private static final long serialVersionUID = 1L; private final JPanel contentPanel = new JPanel(); static JLabel value_x = null; static JLabel value_y = null; static JLabel myPixColorHex = null; static Robot myRobot; static Timer timer = new Timer(); JLabel lblx = new JLabel("X :"); JLabel lbly = new JLabel("Y :"); static boolean isRunning = true; JLabel note1; JLabel note2; /** * Launch the application. */ public static void main(String[] args) { try { myRobot = new Robot(); MousePixInfo3 info_frame = new MousePixInfo3(); info_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); info_frame.setVisible(true); info_frame.setAlwaysOnTop(true); info_frame.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { System.exit(0); } else if (e.getKeyChar() == ' ') { if (isRunning) { timer.cancel(); isRunning = false; } else { run(); isRunning = true; } } else if (e.getKeyChar() == 'l') { setSysClipboardText(value_x.getText() + "," + value_y.getText()); } else if (e.getKeyChar() == 'c') { setSysClipboardText(myPixColorHex.getText()); } } }); run(); } catch (Exception e) { e.printStackTrace(); } } /** * Create the dialog. */ public static void setSysClipboardText(String writeMe) { Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable tText = new StringSelection(writeMe); clip.setContents(tText, null); } public static void run() { timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { Point point = java.awt.MouseInfo.getPointerInfo().getLocation(); Color myPixColor = myRobot.getPixelColor(point.x, point.y); String r = Integer.toHexString(myPixColor.getRed()); String g = Integer.toHexString(myPixColor.getGreen()); String b = Integer.toHexString(myPixColor.getBlue()); value_x.setText("" + point.x); // 双引号""把int转成string value_y.setText("" + point.y); myPixColorHex.setText("#" + r + g + b); } }, 100, 50);// 设置100ms后开始,每50ms检测一次坐标 } public MousePixInfo3() { timer = new Timer(); setTitle("像素采集神器"); setBounds(100, 100, 317, 192); getContentPane().setLayout(new BorderLayout()); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); contentPanel.setLayout(null); lblx.setFont(new Font("宋体", Font.PLAIN, 15)); lblx.setBounds(22, 27, 66, 31); contentPanel.add(lblx); lbly.setFont(new Font("宋体", Font.PLAIN, 15)); lbly.setBounds(22, 68, 66, 31); contentPanel.add(lbly); value_x = new JLabel("0"); value_x.setForeground(Color.BLUE); value_x.setFont(new Font("宋体", Font.PLAIN, 20)); value_x.setBounds(64, 27, 66, 31); contentPanel.add(value_x); value_y = new JLabel("0"); value_y.setForeground(Color.BLUE); value_y.setFont(new Font("宋体", Font.PLAIN, 20)); value_y.setBounds(64, 68, 66, 31); contentPanel.add(value_y); myPixColorHex = new JLabel("0"); myPixColorHex.setForeground(Color.RED); myPixColorHex.setFont(new Font("宋体", Font.PLAIN, 32)); myPixColorHex.setBounds(142, 48, 128, 31); contentPanel.add(myPixColorHex); note1 = new JLabel("esc退出;Space暂停/继续", JLabel.CENTER); note1.setFont(new Font("幼圆", Font.PLAIN, 16)); getContentPane().add(note1, BorderLayout.SOUTH); note2 = new JLabel("'l'复制location;'c'复制color", JLabel.CENTER); note2.setFont(new Font("幼圆", Font.PLAIN, 16)); getContentPane().add(note2, BorderLayout.NORTH); } }

优秀的个人博客,低调大师

Python网络爬虫之爬糗事百科案例

项目说明 使用Python写网络爬虫之糗事百科示例 使用工具 Python2.7.X、pycharm 使用方法 在pycharm中创建一个ceshi.py文件,撰写代码,运行代码,查看运行结果 操作原理 1.首先先了解正则表达式的使用方法,见:正则表达式 2.找到糗事百科的主页URL:http://www.qiushibaike.com/hot/page/1 可以看出来,链接中page/后面的数字就是对应的页码,记住这一点为编写程序做准备。 然后,右击查看页面源码: 网页源码分析-图1 网页源码分析-图2 观察发现,每一个段子都用div标记,其中class必为content,我们只需要用正则表达式将其“扣”出来就可以了。 示例代码 代码示例1 代码示例2 运行结果 运行结果 参考来源:http://blog.csdn.net/pleasecallmewhy/article/details/8932310

优秀的个人博客,低调大师

RFID技术突破,物联网产品或摆脱充电线

曾经创见发表过一篇文章:《从 Nest 烟雾报警器看智能硬件的软肋与出路》,文章的最后指出了智能硬件,又或者是物联网产品目前所存在的最大障碍:它们新奇有余,耐久不足。往往这些产品摆放在家里面之后,没有人会管它们,这个时候电能供应就成为了最大的问题。没有人时不时爬高上低地给各种家具换电池。如果是报警装置,没电了也没人意识到,危险发生时发挥不出应有的作用就更加麻烦了! 然而今天无线射频技术有了新突破,物联网产品终于有可能摆脱对人工充电的依赖了! 物联网时代是一个很宏大的愿景,每一款产品都能通过网络进行智能连接。从你的割草机到你的窗帘再到你的办公室写字椅,每一个家具或者电器都能够相互彼此实现通讯。这听起来固然很美好,但是想要驶向这样一个未来,你必须彻底地改变物联网产品电力的驱动方式。 而如今,来自华盛顿大学的研究人员给我们带来了最新的解决方案:通过射频设别技术(RFID),得到一种摆脱电池依赖的计算机。 大家一般所能见到的无线射频技术(RFID),一般都应用在商场衣服内侧的标签上,电子元器件以及公交站。在过去,它们不可能给任何东西提供动力来源,但是华盛顿大学的研究团队的最新成果使得它的射频信号能够转化成为电能。 所产生的电能其实是很小的,并不足以支撑运行智能手机,但是足够运行那些对电量要求较低的物联网设备。根据华盛顿大学 Sensor Lab 的研究人员 Aaron Parks 的介绍:摆脱对传统电池的依赖,可以让设备在不介入任何物理硬件操作的前提下,自己运行上几十年的时间! 这种技术可以让物联网设备正如智能手机一样去运行一些应用程序,使得物联网设备正式迈入到了计算设备的范畴当中。如今,计算化的 RFID 技术已经成为了现代计算领域这个大的系统中的一部分内容。 尽管这对于未来的物联网行业来说意义非同凡响,但是它还没有正式进入到功能测试环节。华盛顿大学预计在不远的未来会深入进行测试,保证新的传输协议(名字叫做WISP)能够在现实世界中真正发挥其功能。 对于物联网行业来说,电池一直依赖都是非常大的难题,没有人愿意爬高爬下,比如去金门大桥的桥顶上去摘下一个感应器,又或者在一大片农庄田地里眯着眼去寻找一颗没有电了的传感器。让传感器能够自行供给电力,无需人工维护,这是彻底解放物联网领域巨大潜力的关键环节。 只是不要期望一夜之间就会实现,摆在物联网设备面前的路,依然很长。 本文转自d1net(转载)

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册