我在将gif图像转换为基本64字符串时遇到问题.
当我转换它时,代码加起来像100,000 AAAAAA,而图像真的很小!
这是我的代码:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.ArrayList;
public class Main
{
public static void main(String[] args)
{
try
{
FileWriter fstream = new FileWriter("./out.txt");
BufferedWriter out = new BufferedWriter(fstream);
File folder = new File("./flags/");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
Main.readFile(out, listOfFiles[i]);
}
}
out.close();
System.out.println("Done");
}
catch (Exception e) {}
}
public static void readFile(BufferedWriter out, File file)
{
try
{ …Run Code Online (Sandbox Code Playgroud) 我试图将屏幕截图输出作为base64编码的字符串,但没有得到很远.到目前为止,我的代码使用的是Base64库(http://iharder.sourceforge.net/current/java/base64/):
Robot robot = new Robot();
Rectangle r = new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() );
BufferedImage bi = robot.createScreenCapture(r);
ByteArrayOutputStream os = new ByteArrayOutputStream();
OutputStream b64 = new Base64.OutputStream(os);
ImageIO.write(bi, "png", os);
ByteArrayOutputStream out = new ByteArrayOutputStream();
out.writeTo(b64);
String result = out.toString("UTF-8");
Run Code Online (Sandbox Code Playgroud)
每次我运行它,"结果"总是一个空字符串,但我不明白为什么.有任何想法吗?
注意:我不想将png写入磁盘上的文件.
我用以下示例代码创建了一个图形图像.
BufferedImage bi = new BufferedImage(50,50,BufferedImage.TYPE_BYTE_BINARY);
Graphics2D g2d = bi.createGraphics();
// Draw graphics.
g2d.dispose();
// BufferedImage now has my image I want.
Run Code Online (Sandbox Code Playgroud)
此时我有BufferedImage,我想将其转换为IMG数据URI.这可能吗?例如..
<IMG SRC="data:image/png;base64,[BufferedImage data here]"/>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Java对64位图像进行编码,如下所示
public static String getImageStream(String latitude, String longitude) {
byte[] result = null;
try {
URL url = new URL(....);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setUseCaches(false);
connection.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
wr.close();
InputStream iSteamReader = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(iSteamReader));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
response.append('\r');
}
reader.close();
result = response.toString().getBytes("utf-8");
} catch (IOException e) {
logger.error(e.getMessage(), e);
result = new byte[0];
}
return Base64.getEncoder().encodeToString(result);
}
Run Code Online (Sandbox Code Playgroud)
这给了我一张表格的图片 …