起初看到抖音上的那个将图片转化成对应的字符图片的视频,心动不已,哇!这哥们也太有心了吧,虽说莉哥好看,但你做这图要花多长时间呀!值不值啊!
后来我才知道,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();}}
}

最后,由于本人才疏学浅,不足之地,还恳请大家不吝赐教。

仿抖音--将图片转化成对应的字符图片相关推荐

  1. 仿抖音短视频APP源码html网页图片和文字水平居中垂直居中显示

    div相对于页面水平居中显示: 核心代码:margin:0 auto: /意思为:div的外边距上下为0px,左右居中显示;/ /前提是position为相对定位;不能为absolute绝对定位/ * ...

  2. 仿抖音短视频系统源码,获取系统图片

    仿抖音短视频系统源码,实现获取系统图片的相关代码如下: 首先开权限 <uses-permission android:name="android.permission.WRITE_EX ...

  3. android带动画的饼图,Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)...

    视屏转为gif图片工具: 下载地址:CSDN 下载 1.封装了各项工具类,例如,日志,打印,缓存等,可直接使用项目 百度网盘:下载    提取码:fq07 2.Android高仿抖音 1.项目 的bu ...

  4. iOS仿抖音点赞动画、波浪图、主张图、3D旋转、图片处理、播放器等源码

    iOS精选源码 iOS 一个异步渲染TextKit 写个女朋友的生日礼物codeGift 3D旋转 仿抖音小视频点赞动画 高德地图SDK二次封装,完美适配iOS11. iOS图表二次定制 - 波浪折线 ...

  5. Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)

    视屏转为gif图片工具: 下载地址:CSDN 下载 1.封装了各项工具类,例如,日志,打印,缓存等,可直接使用项目 百度网盘:下载     提取码:fq07 2.Android高仿抖音 1.项目 的b ...

  6. 仿抖你妹原版主题源码/仿抖音模式套图WordPress图片主题模板

    仿抖你妹原版主题源码/仿抖音模式套图WordPress图片主题模板 ☑️ 编号:ym430 ☑️ 品牌:WordPress ☑️ 语言:php ☑️ 大小:5.4MB ☑️ 类型:仿抖音模式套图 ☑️ ...

  7. iOS仿抖音点赞动画、波浪图、主张图、3D旋转、图片处理、播放器等源码 1

    iOS精选源码 iOS 一个异步渲染TextKit 写个女朋友的生日礼物codeGift 3D旋转 仿抖音小视频点赞动画 高德地图SDK二次封装,完美适配iOS11. iOS图表二次定制 - 波浪折线 ...

  8. 抖你妹原版主题源码 仿抖音模式套图SEO源码 全开源无授权 WordPress图片主题

    靓图库模板抖你妹原版主题源码,仿抖音模式套图SEO源码,wordpress图片主题不送数据!此源码为wordpress模板,需先安装wordpress后才能使用! 注意:PHP版本越高越好,PHP必须 ...

  9. 仿抖音短视频APP源码如何开发抖音类似特效

    仿抖音短视频APP源码如何开发抖音类似特效 1.特效概览 特效列表 特效列表 2.『灵魂出窍』 抖音的实现效果如下: 灵魂出窍 我的实现效果如下: ezgif.com-rotate.gif 代码实现 ...

最新文章

  1. pip、conda 换国内源,大大提高下载速度
  2. CSS教程:div垂直居中的N种方法以及多行文本垂直居中的方法
  3. sql server 配置管理器里为什么是32位_死磕 Nginx 系列:Nginx 限流配置
  4. 科大星云诗社动态20210224
  5. 【Linux】一步一步学Linux——dircolors命令(239)
  6. google mock分享
  7. Python:使用pypdf2合并、分割、加密pdf文件。
  8. 第4章 Python 数字图像处理(DIP) - 频率域滤波5 - 二变量函数的傅里叶变换、图像中的混叠、二维离散傅里叶变换及其反变换
  9. linux之systemctl设置自定义服务
  10. 经常和电脑、信息化设备打交道,食品保健养生非常重要!
  11. 用Notepad++写python的小配置
  12. 选择不相交区间(贪心:求不相交区间最多个数)
  13. C++ OS 网络 数据库 (面试)
  14. python3处理普通文件【open内置函数】
  15. Java小游戏实操---大鱼吃小鱼 游戏开发
  16. Java多线程开发——一个简单的数字加减小例子
  17. Interview with Dustin Kirkland, Ubuntu Core Developer about encryption in Ubuntu
  18. 图片的居中定位和按钮定位
  19. js中对象合并的4种方式,数组合并的4种方法
  20. MCE | 靶向相分离 小分子药物研发

热门文章

  1. 图片上传系统在淘系中的实践
  2. 将数字金额转换为中文大写金额
  3. 纯前端实现xls表格下载
  4. android 滑动导航栏颜色渐变,Android App页面滑动标题栏颜色渐变
  5. 万亿数字化市场,数据科学为何能扛起“价值担当”?
  6. cropper封装的头像裁剪尺寸插件
  7. 网络安全笔记-TCP/IP
  8. word2019输入文字时很卡解决方法。
  9. c语言税务信息申报系统,四川税务网上申报系统下载
  10. WORD调用Excel的“文本到语音”功能,让WORD有声朗诵