镜头效果

我创建了透镜效果, 为文件加密应用程序的“ 接近” 部分提供了一个诱人功能 。

说明说明

图书馆能够对 Java Swing JPanel 应用透镜效果

对于 v1.2 版本, 我创建了一个演示应用程序, 在 JFrame 上显示镜头, 可以拖过整个屏幕

代码描述

透镜效果是使用极地坐标转换生成的, 角保持相同, 半径在中心附近被延展, 同时被压缩到边缘 。 半径在中心与边缘保持不变 。

然后应用大小为 3x3 的高斯平滑过滤器

视窗窗

镜头效应 v1.1(2015)

下载下载

镜头效应 v1.2 (2018)

下载下载

版本版本

image

小型应用透镜效应是春假的副产品,没有计划。

那时,我正在完成第一部编码器(File Encoder Application)的编程, 我需要一些关于...

最初的想法不是我的,但我执行它 依据一个效果,我曾经看到 在其中的一个 标志性DOS演示。

我决定把效果封存在 Java Swing JPANELL 里 用于我的项目。

面板内的所有东西都可以使用放在您所选坐标处的放大镜放大放大。

特别具有挑战性的问题是,确保更新文本组成部分,特别是在修改选定文本的位置时,不会对视觉外观产生不利影响。

当您创建 LensJPanel 时, 将JPanel 的内容应用到将产生放大效果的元素中。 您可以指定放大镜的半径, 以及它会放大还是减少内容 。

当您拥有半径并确定放大镜会放大还是缩小内容时,将创建一个二维方形矩阵,每个包含放大镜的方像素有一个元素。
算法计算每个目的地像素原始图像中对应源像素的坐标,以确定应用变换时的颜色。
这种转变涉及简单的极地坐标转换,这就是为何使用放大镜的原因:
像素根据镜头框的特定位置计算,用于确定应用变换时的颜色。像素也将在镜头框内。此外,还计算了从镜头中心到给定像素角度的半径。我们计算像素的“原始”像素将在同一角度, 但半径会改变 。" 目标 " 和 " 源 " 像素的半径范围从0%到100%,百分之百代表镜头半径的长度。为每个目标像素计算源像素,方法是保持角度,并使用单质增长衍生物的函数转换半径。这种转换发生在 0 和 1 之间的间隔内, F( 0) 等于 0 和 f(1) 等于 1 。 这里, 0 表示镜头半径的0%, 1 表示镜头半径的100% 。这意味着, radi 将从小半径中取出其源像素, 以扩大透镜圆 。在镜头的圆外,转换将是身份,意思是源像素不会改变。


解释有点混乱, 但如果你有兴趣了解更多关于这个主题的知识, 请随时联系我。

我希望有人会觉得这很有用:-))

image

应用程序的新版本设置了一个带有可移动镜头的圆形图形窗口,可以通过点击鼠标并拖曳来控制该窗口。
您可以按 ESC 退出应用程序。

以下几个问题显而易见:

  • 无法经常刷新扩大的背景, 因为要截图, 你必须将窗口设置为透明, 这会引发令人烦恼的闪烁。
  • 图像很像,特别是在放大镜的中心部分。
image

新版应用程序处理在Mac和Linux操作系统上出现的透明错误。

最新版本还涉及以前版本中发现的像素膨胀问题。

为此,对镜头图像应用高斯平滑过滤器,产生模糊效应,减少放大造成的象素膨胀。

最新版本的颠覆活动涉及爪哇-8和爪哇-11。

视频视频

下载下载