① java可以将字符串转化为图片吗
可以! 但不能把字符串转化为图片格式哦 只能把字符串写在图片上 形成图片
//创建一张图片
BufferedImage image = new BufferedImage(150,30,BufferedImage.TYPE_INT_RGB);
//得到图片
Graphics2D g = (Graphics2D)image.getGraphics();
g.setColor(getRandColor(160, 200));
g.fillRect(0, 0, 200, 30);
//向图片上写写数据
g.setColor(Color.blue);//设置图片颜色
g.setFont(new Font("隶书",Font.ITALIC,20));
//把想要写的字符串画在图片上
String code = "^^^^^^^^^^^^^^^^"
g.drawString(code, 10, 25);//画图片
request.getSession().setAttribute("code", code);//把图片存在session中
ImageIO.write(image,"jpg", response.getOutputStream());//输出图片
}
② VB 把文字(字符串)转换成图片(截图的方法)
你说的方法基本上很难实现。
简单的办法,就是把数据输出到picturebox上去,然后把picturebox的图形输出到剪贴板上,一样实现了你说的截取效果,获得了图片。注意picturebox的autoredraw置为true,否者剪贴板上的图片只有底版。
Private Sub sub_printPic(ByVal sValue As String)
Dim iA As Integer
If sValue = "" Then Exit Sub
Picture1.Print sValue
Clipboard.Clear
Clipboard.SetData Picture1.Image
End Sub
③ java 16进制字符串转图片
String src=...; //从数据库取得的字符串
String output=...; //定义一个输出流用来保存图片
try{
FileOutputStream out = new FileOutputStream(new File(output));
byte[] bytes = src.getBytes();
for(int i=0;i< bytes.length;i+=2){
out.write(charToInt(bytes[i])*16+charToInt(bytes[i+1]));
}
out.close();
}catch(Exception e){
e.printStackTrace();
}
④ python如何把一个字符串批量切割并转化成图片
当然可以。
先根据字符的长度,将字符分成N个组,每组一个字符。
然后根据电脑显示器的大小,创建一个图片框,高度和长度分别设置为电脑显示器的25%。
再将字符显示到图片框中,保存图片框的内容为图片文件即可。
⑤ 如何实现字符串转换为图片
// 将图片转换成字符串
File f = new File("f:\\Vista.png");
FileInputStream fis = new FileInputStream( f );
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();
// 生成字符串
String imgStr = byte2hex( bytes );
System.out.println( imgStr);
// 将字符串转换成二进制,用于显示图片
// 将上面生成的图片格式字符串 imgStr,还原成图片显示
byte[] imgByte = hex2byte( imgStr );
InputStream in = new ByteArrayInputStream( imgByte );
byte[] b = new byte[1024];
int nRead = 0;
while( ( nRead = in.read(b) ) != -1 ){
⑥ base64字符串转换成图片文件
需要在php端处理base64字符串里的头部信息
贴一段我正在用的
php($stream是你传上来的base64
//获取扩展名和文件名
if(preg_match('/(?<=/)[^/]+(?=;)/',$stream,$pregR))$streamFileType='.'.$pregR[0];//读取扩展名,如果你的程序仅限于画板上来的,那一定是png,这句可以直接streamFileType赋值png
$streamFileRand=date('YmdHis').rand(1000,9999);//产生一个随机文件名(因为你base64上来肯定没有文件名,这里你可以自己设置一个也行)
$streamFilename=$upPath."/".$streamFileRand.$streamFileType;
//处理base64文本,用正则把第一个base64,之前的部分砍掉
preg_match('/(?<=base64,)[S|s]+/',$stream,$streamForW);
if(file_put_contents($streamFilename,base64_decode($streamForW[0]))===false)Common::exitWithError("文件写入失败!","");//这是我自己的一个静态类,输出错误信息的,你可以换成你的程序
字符串,假设随机命名,如果你不要随机命名,可以改streamFileRand的值,$upPath是你上传路径):
⑦ 一个把字符串加密成图像的软件,出错了(正解+100分)
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Sub Command1_Click()
Dim x As Long
For i = 1 To Len(Text1.Text)
x = Asc(Mid(Text1.Text, i, 1))
If x > 0 And x <= 126 Then
Picture1.PSet (x, i), vbRed
End If
Next
End Sub
Private Sub Command4_Click()
Dim x As Long, y As Long
For y = 1 To 1000
For x = 1 To 126
a = GetPixel(Me.Picture1.hdc, x, y)
If a = vbRed Then
s = s & Chr(x)
End If
Next
Next
MsgBox s
End Sub
⑧ delphi 怎样将二进制字符串转化为图片文件
将一个图片转换成二进制编码,再将一个二进制字符串转换成为图片实例:
Java代码
publicclassTest{
publicstaticvoidmain(String[]args){
try{
//将图片转换成字符串
Filef=newFile("c:\biao.png");
FileInputStreamfis=newFileInputStream(f);
byte[]bytes=newbyte[fis.available()];
fis.read(bytes);
fis.close();
//生成字符串
StringimgStr=byte2hex(bytes);
System.out.println(imgStr);
//将字符串转换成二进制,用于显示图片
//将上面生成的图片格式字符串imgStr,还原成图片显示
OutputStreamo=newFileOutputStream("c:\878789.png");
byte[]imgByte=hex2byte(imgStr);
InputStreamin=newByteArrayInputStream(imgByte);
byte[]b=newbyte[1024];
intnRead=0;
while((nRead=in.read(b))!=-1){
o.write(b,0,nRead);
}
o.flush();
o.close();
in.close();
}catch(Exceptione){
e.printStackTrace();
}finally{
}
}
/**
*二进制转字符串
*@parambbyte数组
*@return二进制字符串
*/
publicstaticStringbyte2hex(byte[]b){
StringBuffersb=newStringBuffer();
Stringstmp="";
for(intn=0;n<b.length;n++){
stmp=Integer.toHexString(b[n]&0XFF);
if(stmp.length()==1){
sb.append("0"+stmp);
}else{
sb.append(stmp);
}
}
returnsb.toString();
}
/**
*字符串转二进制
*@paramstr字符串
*@returnbyte数组
*/
publicstaticbyte[]hex2byte(Stringstr){
if(str==null)
returnnull;
str=str.trim();
intlen=str.length();
if(len==0||len%2==1)
returnnull;
byte[]b=newbyte[len/2];
try{
for(inti=0;i<str.length();i+=2){
b[i/2]=(byte)Integer.decode("0X"+str.substring(i,i+2)).intValue();
}
returnb;
}catch(Exceptione){
returnnull;
}
}
}