① 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;
}
}
}