java實現(xiàn)圖片轉(zhuǎn)ascii字符畫的方法示例
更新時間:2018年08月16日 10:29:35 作者:請叫我東哥
這篇文章主要介紹了java實現(xiàn)圖片轉(zhuǎn)ascii字符畫的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
最近抖音上挺火的一個小把戲,在記事本打開,一整篇的亂碼字符,然后進過調(diào)整之后,出現(xiàn)一張由各種字符組成的黑白照片。先看一個效果圖
效果如下:
實現(xiàn)原理:
將圖片分解為像素點然后計算出每個點的灰度值,根據(jù)不同的灰度用不同的字符填充.
具體代碼:
package com.dongge; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; /** * @author 東哥 2016年10月27日 * */ public class AsciiPic { /** * @param path * 圖片路徑 */ public static void createAsciiPic(final String path) { final String base = "@#&$%*o!;.";// 字符串由復雜到簡單 try { final BufferedImage image = ImageIO.read(new File(path)); 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(); } } catch (final IOException e) { e.printStackTrace(); } } /** * test * * @param args */ public static void main(final String[] args) { AsciiPic.createAsciiPic("D:\\20161027095850.png"); } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
idea安裝jerbel及文件上傳下載的實現(xiàn)示例
JRebel是一個Java開發(fā)工具,它是一款用于實時代碼重載的插件,本文主要介紹了idea安裝jerbel及文件上傳下載的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解下2023-09-09SpringSecurity集成第三方登錄過程詳解(最新推薦)
在ThirdAuthenticationFilter 類的attemptAuthentication()方法中,我們通過authType類型,然后創(chuàng)建對應的Authentication實現(xiàn)來實現(xiàn)不同方式的登錄,下面給大家分享SpringSecurity集成第三方登錄過程,感興趣的朋友一起看看吧2024-05-05springboot使用Mybatis-plus分頁插件的案例詳解
這篇文章主要介紹了springboot使用Mybatis-plus分頁插件的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05