jsonencode(HEVC图像格式你知道多少)

精英怪
广告

jsonencode,HEVC图像格式你知道多少?

在升级 iOS 11 之后,iPhone 7 及更新的设备内的照片存储将不再用 JPEG 了,而采用了一种新的图片格式 HEIF(发音同 heef),在 iOS 中对应的文件后缀为 .heic ,其编码用的是 HEVC(这个发不了音,哈哈哈)格式,又称 H.265 (这个就很熟悉了 H.264 的下一代),同时视频也用 HEVC 作为编码器,对应的文件后缀还是 .mov 。

jsonencode(HEVC图像格式你知道多少)

这里要注意他们俩的关系, HEIF 是图片格式,而 HEVC 是编码格式(类似 H.264,VP8),HEIF 是图片容器(类似于视频的 mkv,mp4 后缀),而用 HEVC 进行编码的 HEIF 图片就是后缀为 .heic 的图片,也是苹果主要使用的格式。

这两个都是很新的标准,分别在 2015 和 2013 年才被 ISO 批准。这篇文章主要介绍一下 HEIF 格式和与其他图片格式相比的优劣。

发展史如下:

screenshot

什么是 HEIF?

screenshot

这张图是 WWDC Session 511 的形容 Heif 的一句英文诗,JPEG 很大,但是 HEIF 和小。

HEIF 全称 High Efficiency Image Format (HEIF)。是由 Moving Picture Experts Group 制定的,存储图片和图片序列的格式。

相关的介绍位置这边可以看到 nokiatech.github.io/heif/ ,对的,你没有看错,是 Nokia 的技术人员们制定的。相比 JPEG ,PNG 等传统的图片格式来说, HEIF 可算是相当年轻了,但是这种格式相比 JPEG 等有很多的优点。

压缩比高,在相同的图片质量情况下,平比 JPEG 高两倍。

能增加如图片深度信息,透明通道等辅助图片。(苹果正是通过这个就能实现动态的调整图片的景深)。

depth

支持存放多张图片,类似相册和集合。(实现多重曝光的效果)

screenshot

支持多张图片实现 GIF 和 livePhoto 的动画效果。

无类似 JPEG 的最大像素限制。

支持透明像素。

分块加载机制。

支持缩略图。

在这个 Nokia 网站上可以看到相关的例子。

文件组成

在视频文件中,容器和编码是独立开的,比如 mp4,mkv 等格式是容器,而 H.264,VP8 等是编码。但是图像文件中,像 JPEG 就是混合在一起的(所以它不好用啊,哈哈哈哈),HEIF 就把容器和编码分开了,有用来存放单个或者多个图像的容器。

所以基于不同的编码器,会有不同的文件后缀。

Apple 设备中默认使用的都是 HEVC 的编码的 HEIF 格式。

在 Apple 所编码的 HEIF 的文件组成大致如下图,其 mdat - Media Data 中存放的是 exif 信息,缩略图(320*240),和 HEVC 编码后的图片:

screenshot

HEIF 底层是默认 tiled,就是片状的有 512x512 个,由一个个小的图块,组成一张大图,这一特性有如下的优点:

加速解码

缩放加快(不用加载整张图片)

裁剪加快

HeifTile 和 SystemTile (CATiledLayer 等系统所提供的分块加载)是不一样的,但是两者结合会有很大的提升,所以在加载和处理特大图片时,性能有大幅度的提升。

HEIF 所采用的熵编码也和 JPEG 不一样,JPEG 是用的霍夫曼编码(Huffman),而 HEIF 使用的是基于上下文的自适应二进制算术编码(CABAC),编码的是数据量更小且更快。

兼容性

每当一个新的技术推进至工业化,兼容性无疑是最重要的考量点。像 HEIF 这样的图片格式,并不像 JPEG / PNG 等已经被广泛应用和适配了,估计在 Apple 推出之前,大部分开发者和我一样应该都是不知道的。目前工业化的体系内,对 HEIF 几乎是不兼容,Windows 上无法打开 HEIF 文件,10.13 前的 macOS 也无法打开。苹果在推行这一技术的时候,在内部也是做了很多兼容工作的。

对一般用户

一般情况下,用户是对这个格式无感知的,因为只有在新款支持硬解码的 iOS 手机内部是以 heif & hevc 格式来存储照片和视频的,而在用户通过 Airdrop 或者数据线传送到电脑上的时候,对不兼容的设备会自动转换到 JPEG 的格式。所以也不会影响你使用微信,微博等软件。

不过在苹果内部的 app 中,基本都已经用上了这一技术,如照片,FaceTime 等应用。意味着以后同等储存空间能存放更多的照片和视频,同时 FaceTime 也能节省更多了流量,相同网络情况下,FaceTime 也会更加清晰。

通过在 设置 -> 照片 选项中可以设置传到 MAC 或者 PC 上时保持 HEIF 格式。

screenshot

支持的设备

HEIF 图片:

编码:

硬件:**A10 **及以上芯片 iOS 设备。即只有 iPhone7 及以上是支持 HEIF 的(有双摄像头,才带有深度信息)。

软件:iOS11,运行 macOS 系统的 Mac 设备。

解码:

硬件:A9 及以上芯片 iOS 设备(iPhone6s),配备 6 代及以上 Inter Core 处理(Skylake)。

软件:iOS11 和 macOS 支持软解码,但是 iOS11 锁版本代表最低只支持到 5s

HECV 视频:

视频分为 **8 位 / 10 位 两种模式。基本和图片编解码保持一致,唯一有区别的是 10 **位硬解码要求是 7 代 Intel 处理器。

总结一下,就是升到 iOS 11 之后,你的设备就能解析新格式的图片和视频,软硬解码的区别就是,硬解码会更快并更省电。

对开发者

上层框架 PhotoKit

对用户的几乎无感知切换的前提,肯定是上层 API 没有变化,调整的是最底层的 API,所以一般开发者使用上层的框架时,如 PhotoKIt 是不受影响的,不同格式的图片都抽象为了同一个对象。而且对图片增加滤镜和视频的调整修改,最后都会渲染为 JPEG 和 H.264。在这一级别的 API 是接触不到图片文件格式转换所带来的变化的。

下层框架 Image I/O

Image I/O 中可以直接读写 .heic 文件。 iOS 11 中 Image I/O 能够直接读取 heif 的文件,包括读取 exif,xmp 等信息。

let inputURL = URL(fileURLWithPath:Bundle.main.resourcePath! + "/IMG_0513.HEIC") let source = CGImageSourceCreateWithURL(inputURL as CFURL, nil) let image = CGImageSourceCreateImageAtIndex(source!, 0, nil)

let options = [kCGImageSourceCreateThumbnailFromImageIfAbsent as String: true, kCGImageSourceThumbnailMaxPixelSize as String: 320] as [String: Any] let thumb = CGImageSourceCreateThumbnailAtIndex(source!, 0, options as CFDictionary)

guard let cImage = image else { print("not support heic") return; }

当然也可以选择把 CGImage 写入到 HEIC 格式,虽然这样可以节约更多的存储空间,实际使用的时候还是要注意转换操作。

let url = URL(fileURLWithPath: "/tmp/output.heic") guard let destination = CGImageDestinationCreateWithURL(url as CFURL,AVFileType.heic as CFString, 1, nil) else{ fatalError("unable to create CGImageDestination") } CGImageDestinationAddImage(imageDestination, image, nil) CGImageDestinationFinalize(imageDestination)

Apple 提供的很多 API ,供开发者检测设备是否支持新的格式。提供了两种推荐的工作场景事例。

社交网络

在社交软件中,涉及到图片分享之类的内容,是无法确定接受者是否能支持新的格式的, Apple 的策略是建议都进行转换到 JPEG 的操作,比如发送邮件,或者通过 extension 分享的时候,传入其他 app 中的时候,都已经进行了转换了。

p2p 场景

在该场景中,设备和设备间的直接连接,首先把接受者的支持格式告知发送者,然后发送者根据兼容的情况,选择 HEIF 或者 JPEG。比如 AirDrop 。

同时诸如 SDWebImage 目前也正在做对 heif 的兼容。

跨平台

大部分的播放器已经支持了 HEVC 即 H.265 的编码器,但是针对 HEIF 的图片兼容性还是相对较差的。 目前有的是 Nokia 提供了一个 C++ 的读写库,通过该库,支持把 HEIF 的图片的解码到 HEVC 的编码数据。

Android 兼容性:

依赖 Nokia 的库,目前只能通过 CPU 软解。

据说 LG 正在研发支持硬解的手机。(raddit)

网页兼容性:

Nokia 提供 JS 库。

Windows 兼容性:

目前也没有能直接打开 HEIF 文件的应用。

对比

常常拿来与 HEVC 来做对比的是 VP9。两者的性能相近,但是 VP9 是开源的,而 HEVC 是需要专利费的( $2 每设备)。 目前暂时没有通过 VP9 进行编码的图片,所以这里主要对比的是 webp 就是通过 VP8 进行编码的图片。 webp WebP目前支持桌面上的Chrome和Opera浏览器,手机支持仅限于原生的Android浏览器、Android系统上的Chrome浏览器、Opera Mini浏览器。

WebP 有损支持

Google Chrome (desktop) 17+ Google Chrome for Android version 25+ Opera 11.10+ Native web browser, Android 4.0+ (ICS) WebP 有损 / 无损 / 透明支持

Google Chrome (desktop) 23+ Google Chrome for Android version 25+ Opera 12.10+ Native web browser, Android 4.2+ (JB-MR1) Pale Moon 26+ WebP 动画支持

Google Chrome (desktop and Android) 32+ Opera 19+

下面是几个关键技术点的对比,可见 HEIF 功能是最强大的。

压缩效率

下面的数据均是官方提出:

Webp 同等质量下,比 JPEG 图像小 25-34%。

JPEG 平均需要比 HEVC 多 139% 的比特率,意味着同等质量下,JPEG 的大小是 HEVC 的 2.39 倍!

把两个的参考标准统一一下:

Webp 比 JPEG 小 25-34% HEVC 比 JPEG 小 58%

但是在我自己的本地的测试中,测试了五组图片。webp 以 80 的质量进行压缩,hevc 以 crf 18 (视觉无损)压缩,同时增加一个 320x240 的缩略图。

自己进行 HEIF 转码的流程是,将图片通过 ffmpeg 编码到 H.265,再通过 Nokia 的库转成 HEIC 文件(Heif)。

//生成主图像编码 ffmpeg -i $1 -crf 18 -preset slower -pix_fmt yuv420p -f hevc bitstream.265 //生成缩略图编码 ffmpeg -i $1 -vf scale=320:240 -crf 28 -preset slower -pix_fmt yuv420p -f hevc bitstream.thumb.265 //调用 Nokia 的工具 ./writerapp config.json

除了一组特大图的表现不一样外,其他几组图片相比, heif 确实比 webp 压缩效率高 10-20%。

毕竟和 HEVC 对标的技术应该是 VP9,所以 heif 能够领先也是情理之中。

解码的消耗测试

主要测试设备是 iPhone 6s Plus 系统 iOS 11,用的解码方法 webp 为 Google 提供的库,hevc 和 jpeg 用的是 CGImageSource 来解码。 测试用图片还是之前的五组图片,同时对 JPEG 进行了一些压缩,测试了 5 组平均值(去一个最高,去一个最低),估计加载的时候存在缓存,所以第一次读图片数据的时候耗时较大。

第一组用第一张 7.7 mb 的 jpeg 压缩后大小 1.1mb jpeg 7.43 2.77 1.46 1.9 2.14 2.00 【占用率 6 %】 hevc 41.0 3.45 3.35 2.62 2.92 2.66 【占用率 6 %】 webp 216.6 216.8 217.5 261.9 195.2 【占用率 21 %】

第二组用第三张 1.8 mb 的 tff,转换成 jpeg 之后大小为** 815 KB。** hevc 58.4 3.1 2.8 1.13 2.65 2.82 2.02 【 2% 】 jpeg 65.3 2.67 2.76 2.73 2.69 2.87 1.34 【 2% 】 webp 130.2 110.9 117.5 114.8 120.9 112.8 124.84 【 12% 】

第三组用的最后一张 243KB PNG ,转换成 JPEG 之后大小为 43 KB。

hevc 47 3.24 2.7 3.21 2.63 1.74 【 1 %】 jpeg 16 6.70 6.97 4.46 7.2 6.76 7.08 【 1% 】 webp 20.7 20.2 12.5 22.0 19.3 19.4 【 2 % 】

测试结果由于硬解码的支持,jpeg 和 hevc 解码速度和 CPU 占用率都比 webp 快和小很多,jpeg 和 hevc 不相伯仲,可见苹果内部对其优化也相当到位,才把它放到 iOS 11 中。

总结

相比 JPEG 来比很强大,毕竟是下一代技术,但是兼容性可想而知,在“最大效率”和“最大兼容”两者中间还是要根据使用场景进行权衡,目前的优势也只有最新的 iPhone 能体验到,但不久的将来可能所有的手机都去支持照片深度,动态照片,更广的色域等。HEVC 也许和推行 H.264 一样,逐渐成为了工业界的标准,但又可能和推行 acc 的处境一样,只是成为了苹果的标准而已,终究还是要看市场的反应了。

一个芯片会有六十多亿个二极管吗?

谁曾想过如今一颗小小的芯片上面会有几百亿的晶体管,这话说出来就已经颠覆了绝大多数人的认知。每颗晶体管要做得多小才能将几百亿颗容纳到指甲盖大小的区域内。

要知道苹果2020年发布的M1芯片就已经让人惊诧了,苹果将自研的拥有近160亿晶体管的M1芯片用在自家的苹果电脑上。2021下半年更是重磅一击推出了M1 Pro和M1 Max,M1 Max晶体管数量达到了惊人的570亿,功耗却仅有区区90W。

2022年3月份苹果推出的M1 Ultra则是M1的最高阶版本,两颗M1 Max介接而成M1 Ultra,只通过2.5TB/s直接将两个M1 Max处理器和芯片连接在一起。为此不少人都惊掉了下巴。要知道1971年投入市场的555计时器仅有23个晶体管、16个电阻器和2个二极管,1990年之后芯片的晶体管数量才以百万来做单位,如今芯片的晶体管数量已经开始按着摩尔定律在地上摩擦了,真的快到极限了。

何为晶体管?我们常见的二极管、三极管、场效应管、晶闸管等等都属于晶体管,晶体管是一种类似于阀门的固体半导体器件,具有检波、整流、放大、开关、稳压、信号调制等多种功能,因为性能、封装的不同,所以晶体管会有不同的外观。

1947年约翰·巴丁、沃尔特·布拉顿发明了半导体三极管,而威廉·肖克利发明了PN二极管,他们因为半导体及电晶体效应而获得了1956年的诺贝尔物理奖,也为了大规模集成电路小型化奠定了集成。

晶体管主要分为双极性晶体管(BJT)和场效应晶体管(FET)。双极性晶体管有射极、基极、集极三个极,射极到基极的微小电流会使得射极到集极的阻抗发生改变,从而改变流经的电流。

场效应晶体管有源极、栅极、漏极三种极性,在栅极和源极之间施加电压就会改变源极和漏极之间的阻抗,从而控制源极和漏极之间的电流。

芯片内部通常采用层级排列方式,有数十层,最下层为器件层,大多数都是MOSFET场效应晶体管,还有三栅极晶体管等,它们并不是安装上去的,而是芯片制造的时候通过光雕刻上去的。

Mos管没有电感、电阻等等容易产生热量的器件,芯片中的晶体管栅极相当于闸门,负责控制源极和漏极的通断,Mos管就相当于高频开关,控制开关就需要消耗能量。很多的Mos管组合在一起就可以实现各种逻辑门。

比如下图就是通过与非门构建的全加器,可以实现简单的带进位的加法运算。通过数学证明所有的逻辑,包括数学运算都可以通过与非门来实现,而更多更为复杂的运算则可以通过与非门的复杂、粘贴来实现。毫无疑问上百亿的晶体管所组成的电路可以实现更多更为复杂的运算。

芯片的本质芯片的本质其实就是大规模集成电路的小型化,小型化可以带来更大更低的能耗。通过在单位面积内容纳更多的晶体管来提高芯片的性能,同时充分地利用电子产品寸土寸金的空间。芯片制造原理也特别简单,就像早期的照相机显影一样将晶体管刻在晶片上,但难点在于在方寸之间容纳上百亿晶体管,所以需要极窄的光,还要高精度的仪器和光刻胶。

以上个人浅见,欢迎批评指正。

认同我的看法,请点个赞再走,感谢!

喜欢我的,请关注我,再次感谢!

学编程有哪些好点的网站?

摘要:在我认识的所有程序员里,每个人几乎都有专属于自己的常用工具和相关资源,今天给大家奉上数十个程序员硬核工具,我相信了解这些工具对于歇息编程的你一定事半功倍!

程序员生产力工具大全如下:

1. Idea-Intellij IDEA (java 编程语言 开发的集成环境)

业界排名第一的java开发工具,非常非常好用,如果还在用eclipse的朋友,赶紧来体验一把,你一定会爱上她的。

2. SecureCRT (SSH终端仿真程序)

SecureCRT是一款终端仿真程序,支持SSH(SSH1和SSH2)以及Telnet和rlogin协议。SecureCRT用于连接运行包括Windows、UNIX和VMS在内的远程系统的理想工具。

3. Termius (全平台的远程终端)

termius是一款全平台的远程终端,Termius不仅涵盖了Windows、Linux、OSX,还变态得支持Android和iOS(以后在地铁、公交上都可以随时拿出手机来排查线上问题啦,还真是广大程序员的福音呢。

4. Google Chrome (谷歌浏览器)

Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

5. iTerm (为Mac OS X编写的终端仿真程序)

iTerm是一个为Mac OS X编写的,功能齐全的终端仿真程序;目标是在为用户提供OS X下最佳的命令行体验;字母i代表了本地苹果的外观和风格的程序界面,并把重点放在完整的国际支持; 它合并由两个项目, CTerminal和TerminalX ,而这两者都是基于JTerminal项目;该软件非常有实用和易用性。

6. Visual Studio Code (简称“VS Code”,编写现代Web和云应用的跨平台源代码编辑器)

重新定义和优化了代码编辑,以便生成和调试新式 Web 应用程序和云应用程序。也是著名的文本编辑器,它是轻量级的,vSCode的一大特点就是你可以通过多种方式来调整设置,而且Vim可以和VScode集成在一起,它还带有一个集成终端,可用的扩展太多,使开发人员的工作变得更加轻松。我最喜欢的一些扩展是AWS Toolkit, ESLint,Live Server, Live Share, Prettier-代码格式化程序,YAML,Live Sass编译器,Docker等。

7. VMware Fusion & VMware workstation (为计算机开发的虚拟机管理程序)

是在计算机上无缝运行 Windows 的最佳方式,可确保 Windows 应用程序在计算机上实现无缝运行可以在基于 Intel 的计算机上无缝运行 Windows、Linux 以及其他 PC等多个操作系统,进而构建、测试或演示软件。

8. Navicat Premium (数据库管理工具)

Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。

9. Postman (api调试工具)

简单来说,四个词,简单、实用、大方、美观!postman这款网页调试工具的windows客户端,功能强大的HTTP调试与模拟插件。使用Postman可以进行API开发、请求、调试,除了它,还可以使用lnsomnia和Insomnia Designer作为API文档。

10. RedisDesktopManager (一款可视化 redis管理工具 )

Redis Desktop Manager是一款简单快速、跨平台的Redis桌面管理工具,也被称作Redis可视化工具,Redis Desktop Manager官方版是一款开源软件,支持通过SSH Tunnel连接,支持windows、mac等多平台。

11. Dash (基于MAC的 API文档浏览器和代码片段管理器)

“开发者不可或缺的杰作。”Dash 可让您的 Mac 即时离线访问 200 多个 API 文档集。立刻搜索离线文件集200层+的API ,100+备忘单和 href="">更多 功能。您甚至可以"">生成自己的文档集 或 href="">请求 包含href="">文档集 。

12. Fiddler & Wireshark (http抓包工具)

Fiddler和Wireshark都是进行抓包的工具:所谓抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。作为开发者,经常想调试一下http请求发送的数据的详情,那么可以使用这2款软件。用抓包工具wireshark的人相对来说更多一些。

13. HBuilder X (HTML5的Web开发工具)

当前最快的HTML开发工具,强大的代码助手帮你快速完成开发,最全的语法库和浏览器兼容性数据让浏览器碎片化不再头痛。作为HBuilder下一代的全新编辑器,HBuilderX被定位为ide和编辑器的完美结合,除了对某种语言的语法分析、提示、转到定义、调试,同时加强了对通用文本处理能力,界面更加清爽,拥有比上一代更加有效的快捷键体系。

14. MobaXterm (远程终端控制软件,集串口,SSH远程登录和FTP传输三合一的工具)

多功能终端MobaXterm Professional Edition 是一款豪华、全功能的终端软件。MobaXterm带来了所有必要的Unix命令到Windows桌面,在开箱单便携式exe文件。MobaXterm允许您启动远程会话。远程shell,MobaXterm远比Putty好用,您可以选择创建SSH,远程登录,Rlogin,RDP,VNC,XDMCP,FTP,SFTP或串行会话。

15. Sublime Text (跨平台代码编辑器)

http://www.sublimetext.cn/

Sublime Text 是一款用于代码、标记和散文的精致文本编辑器。Sublime Text 中文网致力于为广大国内开发者提供详尽的中文文档、使用说明等,助力开发者快速掌握这个编辑器。

16.webstorm (专业的HTML编辑工具)

web开发的必备的一款开发神器,比如写js、页面、css,那么这款软件用起来非常顺手。此软件和idea出自于同一家公司,这家公司做了很多异常好用的软件,基本上你需要的各种开发相关的IDE,这家公司都生产。可以说是“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”。新版对JavaScript,TypeScript和CSS支持更好,改进了Vue.js的体验,并为Jest集成增加了新功能。

17.Xshell (功能强大的终端模拟器)

linux原创控制软件,完全免费且非常稳定的 SSH 客户端 ,支持多种远程协议,提供了很多特色与高级功能,简体中文界面也让你轻松管理远程服务器。 Xshell 的 Screen 会话不闪屏,而且可以回滚;Script 的执行顺序可以调整;可以同时发送指令到多个 session;支持布局切换等。

18. SwitchHosts (修改Hosts文件的工具)

这是用于在多个HOSTS之间进行切换。可在公用hosts文件 、当前系统hosts、本地方案和在线方案间进行切换。作为一名开发人员,经常需要修改本地host,你还是通过修改host文件来操作的么?那样太慢了,这里建议大家使用switchhosts这款软件,可以快速修改本地host,非常好用。

其他工具:

1. CodeIf(智能命名) : https://unbug.github.io/codelf

大部分开发者都或多或少遇到过变量命名的烦恼,如果命名不规范,不仅会影响开发的效率,而且对后面维护的同学来说也是一个不小的挑战,因为他要去揣摩你这个变量的含义。随着项目越来越复杂,变量和函数数量越来越多,虽然每个编程语言都有各种命名规范,但是也不能解决所有的问题。

“计算机科学里两件最难的事:缓存失效和命名。” Codelf通过搜索在线开源平台Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Project的项目源码,帮开发者从中找出已有的匹配关键字的变量名,从而帮助为变量名苦恼的开发者命名。这个搜索服务支持直接搜索中文。

同时可以在自己用的编辑器里安装插件,支持 VS Code、Atom、Sublime Text 和 Chrome。

2. DocsChina-印记中文 : https://www.docschina.org

这是一个前端中文文档合集,进入网站可以看到开发中经常使用的前端中文文档。如果你的英文实在不怎么好,还在为找中文文档而烦恼,这里将是你非常好的选择。记得放到自己的浏览器收藏夹里哦!

3. any-rule(正则表达大全): http://github.com/any86/any-rule

any-rule 维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具。

4. tool.lu(在线工具): https://tool.lu

程序员总是有很多小工具要使用,比如图片、Base64编码、Markdown编辑器时间戳转换,进制转换等,在线运行各种语言代码。这个网站包含了太多程序员需要用到的小工具了。比如你想运行点JAVA代码,又不想麻烦的在系统中安装JAVA环境,可以使用里边的在线运行代码工具,然后选择JAVA,写点JAVA代码就可以直接运行了。

5. Baomitu(前端静态源库): https://cdn.baomitu.com

这个静态资源库是支持HTTP/2的CDN服务,有了它,如果你是自己的小型项目或者是做测试就不用下载任何的代码库,直接粘贴地址过来用就可以,因为是国内的CDN库,速度还非常的快。

6. Typora-Markdown(编写工具):https://www.typora.io

一款实用的 Markdown 编写工具,所见即所得,用Markdown编写文章是一个程序员的标准配置,也就是标配。现在有很多在线工具都支持Markdown,什么有道云笔记、雀语,、印象笔记等。这种简单的界面,沉浸式的编写,清晰的大纲,它就像一件称手的兵器,让你一旦拥有就爱不释手。

7. Snipaste (简单便捷的截图软件):https://zh.snipaste.com/download.html

一款免费的桌面截图软件,功能强大,使用方便,支持任何屏幕位置截图,支持窗口截图,支持快捷方式截图。您可通过截取贴图,使两张图合并为一张图,还能调整截图文字图像等等,是一款非常强大的贴图软件,喜欢此款贴图软件的朋友不要错过。

8. Captura (最好用的开源录屏、gif动态图片制作工具)

官网:https://captura.updatestar.com/github:https://github.com/MathewSachin/Captura

通过这款工具可以帮助你轻松录制各种视频。支持全屏录制、区域录制两种方式,全屏录制可以录制全部的电脑屏幕,将电脑屏幕上所有的动态都录制下来,该软件还拥有视频编解码器,可以对视频进行解码,支持mp4、avi、GIF、webm等格式,可以满足一般的解码需要。还支持屏幕截图、剪贴板,简单的图像编辑等功能,是一款非常好用的屏幕录像工具。

9. 向日葵 (远程控制软件): https://sunlogin.oray.com/

向日葵远程控制是一款提供远程控制服务的软件。向日葵远程控制支持主流操作系统Windows、Linux、Mac、Android、iOS跨平台协同操作,在任何可连入互联网的地点,都可以轻松访问和控制安装了向日葵远程控制客户端的设备。整个远控过程,可通过浏览器直接进行,无需再安装软件。

10. Everything (本地文件检索工具):http://www.voidtools.com/support/everything/

由voidef="">tools 开发的一款文件搜索工具,这款软件是基于名称实时定位文件和目录。Everthing功能强大,体积小巧,第一次安装使用时会建立一个索引数据库,将所有文件和文件夹的名称导入其中,后续使用能够以极快的速度快速搜索,查找到你所需要的文件。

11. StarUML (UML画图工具)

画uml图的一款神器,类图、时序图、流程图、状态图等等,都可以用这款工具轻松应对。

12. uTools (生产力工具集):https://u.tools/

一个极简、插件化、跨平台的现代化桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。这个工具,我只能说他是一款神奇,太牛逼,这款工具中汇集了很多好用的工具,可以通过这款工具秒开电脑上的各种软件。

搜索资源网站工具:

1.Bing

Bing 国际版:https://cn.bing.com/感觉比某度要好用多了。

2.DuckDuckGo

DuckDuckGo:https://duckduckgo.com/从官网的介绍来看这个搜索引擎不收集用户信息,而且没有广告。

3.Stack Overflow

Stack Overflow:https://stackoverflow.com/我们如果常用 Google,很多技术问题的答案就在这个网站上,如果你无法使用 Google 可以在这个网站上直接检索就好了。

4.Gitlogs

Gitlogs:https://www.gitlogs.com/Gitlogs 是专门针对 GitHub 项目的搜索引擎,我们通过他可以快速找到想要项目。

5.jiumo search

文档搜索引擎 jiumo search 鸠摩搜书:https://www.jiumodiary.com/可以用来找一些技术文档手册,很多在百度网盘里。

6.Ebooke

Ebooke:https://ebookee.org/Ebookee 是一个基于互联网并提供免费电子图书下载的搜索引擎网站。

7.Iconfinder

图标搜索:https://www.iconfinder.com/用来查找 logo 图片。

8.TinEye

TinEye:https://www.tineye.com用图片来检索图片,我们可以上传图片或输入图片的 URL 来检索。

9.SemanticScholar

SemanticScholar:https://www.semanticscholar.org/SemanticScholar 是一个免费学术搜索引擎,其检索结果来自于期刊、学术会议资料或者是学术机构的文献。

10.LibreStock

LibreStock:https://librestock.com/LibreStock 上可以检索一些优质的高清图片。

http://11.CC Search

CC Search:https://ccsearch.creativecommons.org/CC Search 上搜索到的图片资源都是无版权的,我们可以免费的使用。

12.Pexels

Pexels:https://www.pexels.com/高质量的图片网站,可以免费使用。

13.Unsplash

Unsplash:https://unsplash.com/免费高清素材网站。

14.The App Store

The App Store:https://theappstore.org/The App Store 是一个针对苹果手机、iPad、Mac 设备的应用搜索工具。

在线画图工具:

• 在线画图工具ProcessOn:https://www.processon.com/• 在线画图工具http://draw.io:https://app.diagrams.net/• 在线思维导图工具:http://www.mindline.cn/webapp• PlantUML在线编辑器:http://haha98k.com/

在线开发辅助工具:

日常开发经常会用到一些辅助工具我总结为8大类,包括:编解码工具、转换工具、正则工具、编译工具、网络工具、格式化工具、可视化工具、在线生成器、以及其他工具等等。具体列表如下:

在线编码工具:

BASE64编解码工具:https://base64.supfree.net/• MD5编码工具:https://www.zxgj.cn/g/md5• AES/DES加解密:http://www.fly63.com/tool/cipher/• JWT解码工具:http://jwt.calebb.net/• ASCII编解码工具:https://www.matools.com/code-convert-ascii• Unicode编解码工具:https://www.zxgj.cn/g/unicode• UTF-8编解码工具:https://www.zxgj.cn/g/utf8• 字符串编解码工具:https://www.zxgj.cn/g/enstring• URL编解码工具:http://tool.chinaz.com/tools/urlencode.aspx?jdfwkey=lbixz1

在线转换工具:

在线ASCII码对照表:http://www.fly63.com/tool/ascii/• 通用进制转换工具:https://www.zxgj.cn/g/jinzhi• 在线浮点数十进制转换:http://www.binaryconvert.com/• RGB颜色转换:https://www.zxgj.cn/g/yansezhi• 时间戳转换工具:https://www.zxgj.cn/g/unix• 计量单位换算工具:http://www.fly63.com/tool/unitable/• 在线JSON解析:http://www.json.cn/• 在线JS代码格式化工具:https://prettier.io/playground/• SQL压缩/格式化工具:https://www.zxgj.cn/g/sqlformat• JSON和XML在线转换:https://www.zxgj.cn/g/jsonxml• JSON/YAML在线转换:http://www.fly63.com/tool/jsonyaml/• 人民币大小写转换工具:http://www.fly63.com/tool/renmingbi/

正则表达式工具:

正则表达式调试工具:https://regexr.com/• 正则表达式可视化工具:https://jex.im/regulex/

网络工具:

IP地址归属地查询:https://www.ip138.com/• IP地址查询:https://www.ipip.net/ip.html• HTTP在线接口测试工具:http://www.fly63.com/php/http/

在线编译运行工具:

C#在线编译运行:https://rextester.com/• C/C++在线编译调试:https://www.onlinegdb.com/• 在线编译工具套装:https://c.runoob.com/

可视化/格式化工具:

在线前端编辑器: https://codepen.io/• 在线数据可视化:https://flourish.studio/• 在线JSON解析:http://www.json.cn/• 在线CSS代码可视化工具:https://enjoycss.com/• XML格式化工具:https://www.zxgj.cn/g/xmlformat• 在线JS代码格式化工具:https://prettier.io/playground/• SQL压缩/格式化工具:https://www.zxgj.cn/g/sqlformat• JSON和XML在线转换:https://www.zxgj.cn/g/jsonxml• JSON/YAML在线转换:http://www.fly63.com/tool/jsonyaml/

在线生成器:

UUID在线生成器:https://www.zxgj.cn/g/uuid• 随机数生成器:https://www.zxgj.cn/g/suijishu

其他常用工具:

在线Nginx配置工具:https://nginxconfig.io/• 在线对比工具:http://www.fly63.com/tool/textdiff/• 在线Chrome浏览器插件:https://www.crx4chrome.com/• 在线接口文档管理工具:http://www.docway.net/

在线素材工具:

如果你写文章,或者做视频,那就一定少不了要找素材,包括各种图片、背景、emoji表情、表情包、壁纸、视频、gif图等等。• 免费透明背景图片素材:http://pngimg.com/• Emoji表情搜索:https://emoji.svend.cc/• Emoji表情包下载:https://emojiisland.com/• open source icons:https://feathericons.com/• 表情包在线网站:https://fabiaoqing.com/• 免费PNG图片库:https://pluspng.com/• ICON图标在线下载:https://www.iconfinder.com/• 极简壁纸:https://bz.zzzmh.cn/• Wallpaper Abyss壁纸:https://wall.alphacoders.com• Pixabay图片素材库:https://pixabay.com/zh/• Unsplash图片素材库:https://unsplash.com• Pexels图片素材库:http://www.pexels.com• NASA图片视频素材库:https://images.nasa.gov

设计制作类工具:

对于那些文章创作者和视频创作者而言,设计封面,做海报,设计LOGO,图片美化等等基本也是刚需。

这样大概率日常会用到一些简易好上手的在线设计制作类工具,比如在线P图、音/视频轻量化剪辑、logo制作、海报设计制作、图片美化、在线图片转换或生成等等。• 在线PS:https://www.uupoop.com/• 在线音频剪辑:https://www.weixinsyt.com/• 在线视频剪辑:https://www.kapwing.com/• 免费logo在线制作:http://www.uugai.com/• 艺术字体在线生成:https://www.qt86.com/• 在线表格转换工具: https://tableconvert.com/• 在线海报设计工具: https://www.designcap.com/• 图片智能放大工具:https://bigjpg.com/• 二维码美化器:https://mh.cli.im/• 在线代码截图工具:https://carbon.now.sh/• 在线抠图工具:https://www.remove.bg/zh• ICO图标在线生成:http://www.fly63.com/php/ico/• SVG转PNG工具:http://www.fly63.com/tool/svg2img/• 视频转GIF工具:http://www.fly63.com/tool/giftxt/• 二维码在线生成器:http://www.fly63.com/tool/ewm/• 二维码在线解码:http://www.fly63.com/php/decoder/

写辅助工具:

写文章的过程中经常会用到和写作相关的辅助工具,比方说:字数统计工具、Markdown格式的文章排版工具、图床网站、代码截图工具等等,所以下面这些在线工具就能很好地满足我的需求。• 在线字数统计:https://www.eteste.com/• mdnice markdown排版工具:https://mdnice.com/• md2all markdown排版工具:http://md.aclickall.com/• 在线图床神器:https://picx.xpoet.cn/• 在线免费图床:https://sm.ms/• 图壳图床:https://imgkr.com/• 在线代码截图工具:https://carbon.now.sh/• 在线短链接工具:https://urlify.cn/• 在线文本替换:http://www.fly63.com/tool/textreplace/

在线办公工具:

部分在线工具主要用来处理一些和文档以及文稿相关的事情,经常用到的比如:在线的全套pdf处理和转换工具、各种各样多媒体文件间的相互转换工具、在线识别工具、在线压缩工具等等。• pdf在线处理工具1:https://smallpdf.com/cn/pdf-tools• pdf在线处理工具2:https://tools.pdf24.org/zh/• pdf转word在线工具:https://www.pdftoword.com/• 在线多媒体转换器合集:https://cn.office-converter.com/• 在线文字识别工具:https://ocr.wdku.net/• 在线文件压缩工具:https://docsmall.com/

文档笔记工具:

好记性不如烂笔头,作为一个学习者,我觉得记笔记是必不可少的步骤。当然现在基本都做电子笔记和电子文档比较多。现如今各式各样优秀的文档工具和笔记软件鳞次栉比,好用的也有很多,整理成如下列表,这东西各有长处,使用哪个最合意还得看个人习惯和需求了。• 印象笔记:https://www.yinxiang.com/• 有道笔记:https://note.youdao.com/• OneNote:https://www.onenote.com/• 幕布:https://mubu.com/• 为知笔记:https://www.wiz.cn/• 石墨文档:https://shimo.im/• Simplenote:https://simplenote.com/• 语雀:https://www.yuque.com/

编程学习网:

• 哔哩哔哩:https://www.bilibili.com/• C语言网:https://www.dotcpp.com/• cppreference:http://zh.cppreference.com/• 中国大学MOOC:https://www.icourse163.org/• 牛客网:http://www.nowcoder.com• 网易公开课:http://open.163.com• CodeGym:https://codegym.cc/• BeginnersBook:https://beginnersbook.com/• JavaSED:http://www.javased.com/• codecademy:https://www.codecademy.com/• Coursera:https://www.coursera.org/• StackOverFlow:https://stackoverflow.com/• LeetCode:https://leetcode-cn.com/• LintCode:https://www.lintcode.com/

在线教程文档:

这部分主要集中了在做开发过程中随手参考所要用到的几乎所有在线教程和官方文档,有中文版文档的基本都优先列出来了,但更多时候是英文的官方文档。• Git中文教程:https://git-scm.com/book/zh/v2• SVN中文手册:http://svnbook.red-bean.com/nightly/zh/index.html• jQuery API中文文档:https://jquery.cuishifeng.cn/• Nginx中文文档:https://www.nginx.cn/doc/index.html• Kafka中文文档:https://kafka.apachecn.org/• Mybatis中文文档:https://mybatis.org/mybatis-3/zh/index.html• 微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/• Nodejs中文教程文档:http://nodejs.cn/learn• Apache Web Server文档:http://httpd.apache.org/docs/• Spring文档中文版:https://www.springcloud.cc/spring-reference.html• Golang标准库文档中文版:https://studygolang.com/pkgdoc• Java 8官方文档:https://docs.oracle.com/javase/8/docs/api/index.html• Maven官方文档:http://maven.apache.org/guides/• Tomcat 8官方文档:http://tomcat.apache.org/tomcat-8.0-doc/index.html• Spring Boot官方文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/• RabbitMQ官方文档:https://www.rabbitmq.com/documentation.html• RocketMQ官方文档:http://rocketmq.apache.org/docs/quick-start/• Dubbo中文文档:https://dubbo.apache.org/zh/docs/• Netty官方文档:https://netty.io/wiki/index.html• Elasticsearch官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html• Spring Cloud官方文档:https://spring.io/projects/spring-cloud• Docker官方文档:https://docs.docker.com/get-started/• kubernetes中文文档:https://kubernetes.io/zh/docs/home/• thymeleaf官方文档:https://www.thymeleaf.org/documentation.html• Vue.js中文文档:https://cn.vuejs.org/v2/guide/• React.js官方文档:https://reactjs.org/docs/getting-started.html• Jenkins中文文档:https://www.jenkins.io/zh/doc/

华为云平台:

高效易用的低代码aPaaS平台-应用魔方AppCube:https://www.huaweicloud.com/product/appcube.html集华为研发实践、前沿研发理念、先进研发工具为一体的软件开发平台-软件开发平台 DevCloud:https://www.huaweicloud.com/devcloud/

以上内容分享自华为云社区《吐血整理:程序员都在用什么工具?》,作者: 考过IE励志当攻城狮 ,部分内容整理自互联网~

关注华为云开发者联盟,第一时间了解华为云新鲜技术~

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,216人围观)

还没有评论,来说两句吧...