仿抖音--将图片转化成对应的字符图片
起初看到抖音上的那个将图片转化成对应的字符图片的视频,心动不已,哇!这哥们也太有心了吧,虽说莉哥好看,但你做这图要花多长时间呀!值不值啊!
后来我才知道,java实现的话简直一秒钟的事。
第一开始只能支持小尺寸的图片,宽度200或者以下的,稍微大点的出来的效果就走样了。
于是我便在转码之前改变了一下图片的大小。
效果如下:
废话不多说,呈上代码。
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;public class AsciiPic {/** 将image转换成bufferimage*/public static BufferedImage toBufferedImage(Image image) { if (image instanceof BufferedImage) { return (BufferedImage)image; } // 加载所有像素 image = new ImageIcon(image).getImage(); BufferedImage bimage = null; GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); try { int transparency = Transparency.OPAQUE; // 创建buffer图像 GraphicsDevice gs = ge.getDefaultScreenDevice(); GraphicsConfiguration gc = gs.getDefaultConfiguration(); bimage = gc.createCompatibleImage( image.getWidth(null), image.getHeight(null), transparency); } catch (HeadlessException e) { e.printStackTrace(); } if (bimage == null) { int type = BufferedImage.TYPE_INT_RGB; bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type); } // 复制Graphics g = bimage.createGraphics(); // 赋值 g.drawImage(image, 0, 0, null); g.dispose(); return bimage;} public static Image creatImage(String Imgpath) {Image srcImg = null;try {srcImg = ImageIO.read(new FileInputStream(Imgpath));} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//取源图int width = 200; //假设要缩小到200点像素int height = srcImg.getHeight(null)*200/srcImg.getWidth(null);//按比例,将高度缩减Image smallImg =srcImg.getScaledInstance(width, height, Image.SCALE_SMOOTH);//缩小return smallImg; }/*** @param path* 图片路径*/public static void createAsciiPic(BufferedImage bfimage) throws IOException {final String base = "@#&$%*o!;.";// 字符串由复杂到简单final BufferedImage image = bfimage;for (int y = 0; y < image.getHeight(); y += 2) {for (int x = 0; x < image.getWidth(); x++) {final int pixel = image.getRGB(x, y);final int r = (pixel & 0xff0000) >> 16, g = (pixel & 0xff00) >> 8, b = pixel & 0xff;final float gray = 0.299f * r + 0.578f * g + 0.114f * b;final int index = Math.round(gray * (base.length() + 1) / 255);System.out.print(index >= base.length() ? " " : String.valueOf(base.charAt(index)));}System.out.println();}}/*** test** @param args*/public static void main(final String[] args) {try {AsciiPic.createAsciiPic(toBufferedImage(creatImage("E:/imgtoASCII/wx.jpg")));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
最后,由于本人才疏学浅,不足之地,还恳请大家不吝赐教。
仿抖音--将图片转化成对应的字符图片相关推荐
- 仿抖音短视频APP源码html网页图片和文字水平居中垂直居中显示
div相对于页面水平居中显示: 核心代码:margin:0 auto: /意思为:div的外边距上下为0px,左右居中显示;/ /前提是position为相对定位;不能为absolute绝对定位/ * ...
- 仿抖音短视频系统源码,获取系统图片
仿抖音短视频系统源码,实现获取系统图片的相关代码如下: 首先开权限 <uses-permission android:name="android.permission.WRITE_EX ...
- android带动画的饼图,Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)...
视屏转为gif图片工具: 下载地址:CSDN 下载 1.封装了各项工具类,例如,日志,打印,缓存等,可直接使用项目 百度网盘:下载 提取码:fq07 2.Android高仿抖音 1.项目 的bu ...
- iOS仿抖音点赞动画、波浪图、主张图、3D旋转、图片处理、播放器等源码
iOS精选源码 iOS 一个异步渲染TextKit 写个女朋友的生日礼物codeGift 3D旋转 仿抖音小视频点赞动画 高德地图SDK二次封装,完美适配iOS11. iOS图表二次定制 - 波浪折线 ...
- Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)
视屏转为gif图片工具: 下载地址:CSDN 下载 1.封装了各项工具类,例如,日志,打印,缓存等,可直接使用项目 百度网盘:下载 提取码:fq07 2.Android高仿抖音 1.项目 的b ...
- 仿抖你妹原版主题源码/仿抖音模式套图WordPress图片主题模板
仿抖你妹原版主题源码/仿抖音模式套图WordPress图片主题模板 ☑️ 编号:ym430 ☑️ 品牌:WordPress ☑️ 语言:php ☑️ 大小:5.4MB ☑️ 类型:仿抖音模式套图 ☑️ ...
- iOS仿抖音点赞动画、波浪图、主张图、3D旋转、图片处理、播放器等源码 1
iOS精选源码 iOS 一个异步渲染TextKit 写个女朋友的生日礼物codeGift 3D旋转 仿抖音小视频点赞动画 高德地图SDK二次封装,完美适配iOS11. iOS图表二次定制 - 波浪折线 ...
- 抖你妹原版主题源码 仿抖音模式套图SEO源码 全开源无授权 WordPress图片主题
靓图库模板抖你妹原版主题源码,仿抖音模式套图SEO源码,wordpress图片主题不送数据!此源码为wordpress模板,需先安装wordpress后才能使用! 注意:PHP版本越高越好,PHP必须 ...
- 仿抖音短视频APP源码如何开发抖音类似特效
仿抖音短视频APP源码如何开发抖音类似特效 1.特效概览 特效列表 特效列表 2.『灵魂出窍』 抖音的实现效果如下: 灵魂出窍 我的实现效果如下: ezgif.com-rotate.gif 代码实现 ...
最新文章
- pip、conda 换国内源,大大提高下载速度
- CSS教程:div垂直居中的N种方法以及多行文本垂直居中的方法
- sql server 配置管理器里为什么是32位_死磕 Nginx 系列:Nginx 限流配置
- 科大星云诗社动态20210224
- 【Linux】一步一步学Linux——dircolors命令(239)
- google mock分享
- Python:使用pypdf2合并、分割、加密pdf文件。
- 第4章 Python 数字图像处理(DIP) - 频率域滤波5 - 二变量函数的傅里叶变换、图像中的混叠、二维离散傅里叶变换及其反变换
- linux之systemctl设置自定义服务
- 经常和电脑、信息化设备打交道,食品保健养生非常重要!
- 用Notepad++写python的小配置
- 选择不相交区间(贪心:求不相交区间最多个数)
- C++ OS 网络 数据库 (面试)
- python3处理普通文件【open内置函数】
- Java小游戏实操---大鱼吃小鱼 游戏开发
- Java多线程开发——一个简单的数字加减小例子
- Interview with Dustin Kirkland, Ubuntu Core Developer about encryption in Ubuntu
- 图片的居中定位和按钮定位
- js中对象合并的4种方式,数组合并的4种方法
- MCE | 靶向相分离 小分子药物研发