代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
图片转字符串再另存为图片
作者:
Kevin
/ 发布于
2015/10/14
/
707
import javax.swing.*; import javax.swing.text.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.*; class MyDefaultEditorKit extends StyledEditorKit { @Override public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException { char[] buff = new char[4096]; int nch; AttributeSet attr = getInputAttributes(); while ((nch = in.read(buff, 0, buff.length)) != -1) { doc.insertString(pos, new String(buff, 0, nch), attr); pos += nch; } } @Override public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException { if ((pos < 0) || ((pos + len) > doc.getLength())) { throw new BadLocationException("DefaultEditorKit.write", pos); } Segment data = new Segment(); int nleft = len; int offs = pos; while (nleft > 0) { int n = Math.min(nleft, 4096); doc.getText(offs, n, data); out.write(data.array, data.offset, data.count); offs += n; nleft -= n; } out.flush(); } } class MainFrame extends JFrame { JTextPane textPane; JLabel jLabel; JButton button; MainFrame() { setLayout(new BorderLayout()); button = new JButton("写图片"); jLabel = new JLabel(); textPane = new JTextPane(); textPane.setEditorKit(new MyDefaultEditorKit()); JPanel jPanel = new JPanel(); jPanel.add(textPane); //jPanel.add(jLabel); JScrollPane jScrollPane = new JScrollPane(jPanel); add(button, BorderLayout.NORTH); add(jScrollPane, BorderLayout.CENTER); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } } public class ByteToChar { public static void main(String[] args) { try { final MainFrame frame = new MainFrame(); //读图片,放入文本框http://blog.csdn.net/xxb2008 File file = new File("C:\\Users\\feifei\\Desktop\\垃圾\\图片\\1.jpg"); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); byte[] imgByte = new byte[(int) file.length()]; bis.read(imgByte); String toStr = BytesToStr(imgByte); frame.textPane.setText(toStr); frame.jLabel.setText(toStr); frame.button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { //写图片,文本框取值 String imgStr = frame.textPane.getText(); // imgStr = frame.jLabel.getText(); File newFile = new File("C:\\Users\\feifei\\Desktop\\垃圾\\图片\\2.jpg"); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile)); bos.write(StrToBytes(imgStr)); bos.flush(); bos.close(); } catch (IOException e1) { e1.printStackTrace(); } } }); frame.setSize(400, 300); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } public static String BytesToStr(byte[] target) { StringBuffer buf = new StringBuffer(); for (int i = 0, j = target.length; i < j; i++) { buf.append((char) target[i]); } return buf.toString(); } public static byte[] StrToBytes(String str) { byte[] buf = new byte[str.length()]; for (int i = 0; i < str.length(); i++) { buf[i] = (byte) str.charAt(i); } return buf; } }
试试其它关键字
图片转字符
另存为图片
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Kevin
贡献的其它代码
(
8
)
.
动态设置字符串Size
.
实现给图片添加水印
.
根据文件路径复制文件
.
最短路径--Floyd算法
.
打印System.getProperties的属性值
.
刷新当前页面
.
图片转字符串再另存为图片
.
session失效时间设置
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3