图像处理之LOMO特效
来源:互联网 发布:simulink转换成c语言 编辑:程序博客网 时间:2024/05/16 05:07
一说到LOMO特效,大家还是很熟悉的,先不废话,先把实现效果贴上再说。
原图:
lomo效果
按照我的理解,简单来说就是在原图上加了一个圆形的alpha遮罩。中间的透明度较高,周围的透明度较低,颜色较暗,形成了特殊的视觉效果。
下面直接贴代码啦。
package algorithm.lomo;import java.awt.image.BufferedImage;/** * 经典LOMO特效 * */public class ClassicalLomo{/** * lomo特效:作用于radius为半径的圆内 * * @param image * @param radius * */public static BufferedImage getImage(BufferedImage image, int radius){int width = image.getWidth();int height = image.getHeight();// 新建一个与源图像大小相等的新图像BufferedImage outputImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// 扫描每个像素点for (int y = 0; y < height; y++){for (int x = 0; x < width; x++){int distance = getDistance(y, x, height / 2, width / 2);// 在半径外的点直接设置为黑色if (distance > radius){outputImage.setRGB(x, y, getRGB(0, 0, 0));}// 依据点到图像中点的距离设置像素的颜色// 模拟一个渐变的alpha遮罩的效果else{int[] rgb = getSplitRGB(image.getRGB(x, y));float ratio = (float) (1 - distance * 1.0 / radius);int r = (int) (rgb[0] * ratio);int g = (int) (rgb[1] * ratio);int b = (int) (rgb[2] * ratio);outputImage.setRGB(x, y, ImgUtil.getRGB(r, g, b));}}}return outputImage;}/** * 将r,g,b分量转换成一个完整的rgb值 * * @param r * @param g * @param b * */public static int getRGB(int r, int g, int b){r = r << 16;g = g << 8;return (r | g | b);}/** * 将rgb保存在数组中 * * @param rgb * */public static int[] getSplitRGB(int rgb){int[] rgbs = new int[3];rgbs[0] = (rgb & 0xff0000) >> 16;rgbs[1] = (rgb & 0xff00) >> 8;rgbs[2] = (rgb & 0xff);return rgbs;}/** * 获取两点之间的距离 * * @param x1 * 第一个点的X坐标 * @param y1 * 第一个点的y坐标 * @param x2 * 第二个点的X坐标 * @param y2 * 第二个点的y坐标 * */public static int getDistance(int x1, int y1, int x2, int y2){int x = x1 - x2;int y = y1 - y2;return (int) Math.sqrt(x * x + y * y);}}
0 0
- 图像处理之LOMO特效
- 图像特效之LOMO效果
- 图像特效---LOMO Filter
- 图像处理---LoMo
- LOMO特效
- 【Android图像处理】lomo滤镜(效果)
- Android图像处理之色彩特效处理
- Android图像处理之图形特效处理
- Android图像处理之画笔特效处理
- Android图像处理之熔铸特效
- 图像处理之老照片特效
- 图像处理之老照片特效
- 图像处理算法之水面倒影特效
- 图像处理之水彩画特效生成算法
- 图像处理算法之变老特效
- 【Android图像处理】图像处理之-噪点特效
- 【Android图像处理】图像处理之-放大镜特效
- 图像处理算法之图像暗角特效
- java工程积累——如何处理Tomcat内存溢出
- MD5.SHA.BASE64算法加解密
- C#调用存储过程详解
- 堆 和 栈的 区别(经典)(转)
- 递归练习之求立方根
- 图像处理之LOMO特效
- Mybatis通用Mapper
- 算法 Swap Nodes in Pairs
- Java生成缩略图Thumbnailator(转载)
- MVC总结--数据传递
- ubuntu交叉编译器及反汇编的使用
- Two different y axes on the same plot
- hander message 传自定义List<Object>
- CTreeCtrl变量的遍历