马赛克效果的思路:在固定范围内放大像素点,并跳过相应的像素点!

package com.gch.mosaic;import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;/**马赛克效果的实现*/
public class MosaicPixelUI {/**图像处理界面*/public void showUI(){JFrame win = new JFrame("马赛克");JPanel panel = new JPanel();win.add(panel);win.setSize(750,600);win.setLocationRelativeTo(null);win.setDefaultCloseOperation(3);win.setVisible(true);// 获取画笔Graphics g = win.getGraphics();// 给窗体添加鼠标监听器win.addMouseListener(new MouseListener() {@Overridepublic void mouseClicked(MouseEvent e) {System.out.println("点击!");// 指定图片路径String path = "C:\\Users\\A.G.H\\Pictures\\Saved Pictures\\热气球.jpg";// 将图片转化为int型的二维数组int[][] pixelArr = getImagePixel(path);// 调用马赛克效果实现mosaicPixel(pixelArr);}/*** 马赛克效果的实现:在固定范围内放大像素点* @param pixelArr:保存图片像素点的像素值的二维数组*/public void mosaicPixel(int[][] pixelArr){// 通过双层循环遍历保存像素点的像素值的二维数组for(int i = 0;i < pixelArr.length;i+=12){for(int j = 0;j < pixelArr[0].length;j+=12){// 取出图片的所有像素值int pixel = pixelArr[i][j];// 把像素值转为Color对象Color color = new Color(pixel);// 把画笔设置成当前颜色g.setColor(color);// 绘制当前颜色的像素点g.fillRect(j , i , 12, 12);}}}/**将图片转换为int型的二维数组,获取图片像素的宽高,获取每个像素点的像素值* 获取指定路径图片的像素点的像素值* @param path:指定图片路径* @return:返回保存指定路径图片像素点的像素值的二维数组*/public int[][] getImagePixel(String path){// 创建文件对象File file = new File(path);// BufferedImage:图像缓冲区,图片数据的封装类BufferedImage bufferedImage = null;// 用输入流读取指定文件的数据try {bufferedImage = ImageIO.read(file);} catch (IOException e) {throw new RuntimeException(e);}// 获取图片像素的宽高int w = bufferedImage.getWidth(); // 宽:对应二维数组的列int h = bufferedImage.getHeight(); // 高:对应二维数组的行// 保存到二维数组int[][] pixelArr = new int[h][w];// 遍历二维数组的每一个元素,通过双层循环遍历整个图片的像素点for(int i = 0;i < h;i++){for(int j = 0;j < w;j++){// 通过图像缓冲区bufferedImage对象的getRGB()方法获取每个像素点的像素值int pixel = bufferedImage.getRGB(j, i);// 把每个像素点的像素值保存到二维数组中pixelArr[i][j] = pixel;}}// 返回保存指定图片像素点的像素值的二维数组return pixelArr;}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseExited(MouseEvent e) {}});}
}
package com.gch.mosaic;public class Manage {/**主函数*/public static void main(String[] args) {MosaicPixelUI ui = new MosaicPixelUI();ui.showUI();}
}

马赛克效果的滤镜实现相关推荐

  1. python图片马赛克_Python实现PS滤镜中马赛克效果示例

    本文实例讲述了Python实现PS滤镜中马赛克效果.分享给大家供大家参考,具体如下: 这里利用 Python 实现PS 滤镜中的马赛克效果,具体的算法原理和效果可以参考附录说明,Python示例代码如 ...

  2. python开发ps插件_Python实现PS滤镜中马赛克效果示例

    Python实现PS滤镜中马赛克效果示例 发布时间:2020-08-29 06:02:24 来源:脚本之家 阅读:93 作者:Matrix_11 本文实例讲述了Python实现PS滤镜中马赛克效果.分 ...

  3. PS制作马赛克效果、炫酷光线

    马赛克效果 1.打开人物素材,新建图层,创建一个渐变色 2.混合模式改为叠加,盖印图层Ctrl+shift+Alt+E 3.双击图层,混合模式,取消勾选GB通道 4.Ctrl+J复制图层,然后盖印图层 ...

  4. 马赛克效果,通过PS把迪丽热巴制作成马赛克效果

    马赛克效果,通过PS把迪丽热巴制作成马赛克效果 感兴趣的小伙伴可以加入讨论群哦:927505668 本篇教程通过PS把迪丽热巴的照片制作成马赛克的效果,整个教程步骤比较简单, 属于那种只要动手制作就可 ...

  5. FFMPEG使用 frei0r 给视频添加马赛克效果

    最近群里有伙伴给出一条命令 ffplay -i xx.mp4 -vf "frei0r=pixeliz0r:0.02|0.02" 想要给视频添加马赛克,  当时遇到问题 没有找到 f ...

  6. 马赛克效果(shader)

    马赛克是一种常用的图像处理手段,因为这种模糊效果看上去有一个个的小格子组,便形象的称这种画面为马赛克.当画面上的马赛克格子小到一定程度的时候,画面呈现出来的风格也叫像素风 demo 实现思路 核心思路 ...

  7. EDIUS实现跟踪马赛克效果的教程

    我们经常会在一些新闻的视频中看到一些马赛克,这些马赛克一般都是保护人物的隐私权,肖像权什么的.我们时常也会看到即使人物位置发生了变化,被遮挡的地方依旧还是被遮挡住,一点也不用担心因为人物运动而使马赛克 ...

  8. 怎么用视频编辑软件实现跟踪马赛克效果

    我们经常会在一些新闻的视频中看到一些马赛克,这些马赛克一般都是保护人物的隐私权,肖像权什么的.我们时常也会看到即使人物位置发生了变化,被遮挡的地方依旧还是被遮挡住,一点也不用担心因为人物运动而使马赛克 ...

  9. 教你如何制作漂亮的马赛克效果

    [PhotoShop][教程]教你如何制作漂亮的马赛克效果 通常我们会在电视上,网页上,看见各种各样的带有马赛克的图片,是不是很想知道它是怎么做的呢?今天你就能做出漂亮的马赛克图片,其实操作步骤非常的 ...

最新文章

  1. 指针-指向函数指针数组的指针
  2. linux中atoi函数的实现 值得借鉴,【转】atoi()函数的实现
  3. 520这天,我突然意识到,她根本配不上我这么聪明的男人!
  4. java \t怎么从头开始_通过这些简单的步骤从头开始学习Java
  5. 动态规划求一个序列的最长回文子序列(Longest Palindromic Substring )
  6. Ubuntu环境使用conda安装轻量级中文ocr开源项目chineseocr_lite,最简单的方式
  7. 企业实战01:Oracle数据库概述
  8. Asp.net三层结构原理与用意学习入门教程(一)
  9. 修改goods对ECshop的url路径进行优化
  10. python打开autocad软件_python 使用pyautocad操作AutoCAD
  11. cinder与ceph的区别_配置cinder-volume服务使用ceph作为后端存储
  12. 使用TSC打印机打印条码 (1)
  13. TensorFlow优化模型之正则化
  14. RS-232通信接口
  15. 混迹职场,人际关系很重要
  16. 20-统一网关Gateway-全局过滤器
  17. TIM_SetCompare1(TIM14,625); 但是这个办法对TIM4行不通。TIM4使用TIM_OCInitStructure.TIM_Pulse = dutyCycle;
  18. LWN:滚动发布的稳定版内核!
  19. Jenkins 身份验证及授权简介
  20. 进程间的通信方式——pipe(管道)

热门文章

  1. 基于欧式聚类的车载路面点云扫描线提取
  2. 读书 | 设计模式之禅 - 策略模式
  3. 宝付国际受邀参加鼎堃跨境电商俱乐部七周年盛典
  4. 最新最全!《个人防疫手册》来了!
  5. 案例分析:运营菜鸟应该注意哪些细节?
  6. 图的概念和构造方法(Java)
  7. 跨模态reID之JSIA-ReID框架的相关概念与结构分析
  8. 跨平台的EA交易: 信号
  9. [转帖]Photoshop将照片制作成素描效果
  10. 和数集团“区块链+数字化”促进新场景应用落地 为多领域开启无限可能