图书馆能够对 Java Swing JPanel 应用透镜效果
对于 v1.2 版本, 我创建了一个演示应用程序, 在 JFrame 上显示镜头, 可以拖过整个屏幕
我创建了透镜效果, 为文件加密应用程序的“ 接近” 部分提供了一个诱人功能 。
图书馆能够对 Java Swing JPanel 应用透镜效果
对于 v1.2 版本, 我创建了一个演示应用程序, 在 JFrame 上显示镜头, 可以拖过整个屏幕
透镜效果是使用极地坐标转换生成的, 角保持相同, 半径在中心附近被延展, 同时被压缩到边缘 。 半径在中心与边缘保持不变 。
然后应用大小为 3x3 的高斯平滑过滤器
小型应用透镜效应是春假的副产品,没有计划。
那时,我正在完成第一部编码器(File Encoder Application)的编程, 我需要一些关于...
最初的想法不是我的,但我执行它 依据一个效果,我曾经看到 在其中的一个 标志性DOS演示。
我决定把效果封存在 Java Swing JPANELL 里 用于我的项目。
面板内的所有东西都可以使用放在您所选坐标处的放大镜放大放大。
特别具有挑战性的问题是,确保更新文本组成部分,特别是在修改选定文本的位置时,不会对视觉外观产生不利影响。
当您创建 LensJPanel 时, 将JPanel 的内容应用到将产生放大效果的元素中。 您可以指定放大镜的半径, 以及它会放大还是减少内容 。
当您拥有半径并确定放大镜会放大还是缩小内容时,将创建一个二维方形矩阵,每个包含放大镜的方像素有一个元素。
算法计算每个目的地像素原始图像中对应源像素的坐标,以确定应用变换时的颜色。
这种转变涉及简单的极地坐标转换,这就是为何使用放大镜的原因:
像素根据镜头框的特定位置计算,用于确定应用变换时的颜色。像素也将在镜头框内。此外,还计算了从镜头中心到给定像素角度的半径。我们计算像素的“原始”像素将在同一角度, 但半径会改变 。" 目标 " 和 " 源 " 像素的半径范围从0%到100%,百分之百代表镜头半径的长度。为每个目标像素计算源像素,方法是保持角度,并使用单质增长衍生物的函数转换半径。这种转换发生在 0 和 1 之间的间隔内, F( 0) 等于 0 和 f(1) 等于 1 。 这里, 0 表示镜头半径的0%, 1 表示镜头半径的100% 。这意味着, radi 将从小半径中取出其源像素, 以扩大透镜圆 。在镜头的圆外,转换将是身份,意思是源像素不会改变。
解释有点混乱, 但如果你有兴趣了解更多关于这个主题的知识, 请随时联系我。
我希望有人会觉得这很有用:-))
应用程序的新版本设置了一个带有可移动镜头的圆形图形窗口,可以通过点击鼠标并拖曳来控制该窗口。
您可以按 ESC 退出应用程序。
以下几个问题显而易见:
新版应用程序处理在Mac和Linux操作系统上出现的透明错误。
最新版本还涉及以前版本中发现的像素膨胀问题。
为此,对镜头图像应用高斯平滑过滤器,产生模糊效应,减少放大造成的象素膨胀。
最新版本的颠覆活动涉及爪哇-8和爪哇-11。