在 java 中将多个图像写入输出流
write multiple images to outputstream in java
我在eclipse 的resources 文件夹下有一个名为images 的文件夹。
我在图像文件夹中有多个图像。
我想通过调用网络服务在我的浏览器中显示所有图像。
我尝试了以下 code.I 我只能检索一个 image.I 想要多个 images.How 我可以这样做吗?
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("images/").getPath());
final String[] EXTENSIONS = new String[]{
"png","jpg"// and other formats you need
};
// filter to identify images based on their extensions
final FilenameFilter IMAGE_FILTER = new FilenameFilter()
{
@Override
public boolean accept(final File dir, final String name) {
for (final String ext : EXTENSIONS) {
if (name.endsWith("." + ext)) {
return (true);
}
}
return (false);
}
};
if (file.isDirectory())
{
//list of files I get
for (final File fi : file.listFiles(IMAGE_FILTER))
{
OutputStream out =null;
OutputStream out1 =null;
BufferedImage bi =null;
try
{
System.out.println("file" +fi);
//I get different files from images folder and add that to bufferedImage.
bi= ImageIO.read(fi);
response.setContentType("image/jpeg");
out= response.getOutputStream();
ImageIO.write(bi, "png", out);
ImageIO.write(bi, "jpg", out);
out.close();
}
catch (final IOException e)
{
// handle errors here
e.printStackTrace();
}
}
}
资源不是文件。无法保证它们甚至会存在于文件系统中,只能存在于 JAR 或 WAR 文件中。所以使用 File 方法是行不通的。
在任何情况下,仅将图像流序列化到浏览器也是行不通的。您应该生成一个 HTML 页面,其中包含 <img>
元素,带有图像的 URL,并组织这些 URL 是可下载的。可能一开始就不适合使用资源机制。
我在eclipse 的resources 文件夹下有一个名为images 的文件夹。 我在图像文件夹中有多个图像。 我想通过调用网络服务在我的浏览器中显示所有图像。 我尝试了以下 code.I 我只能检索一个 image.I 想要多个 images.How 我可以这样做吗?
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("images/").getPath());
final String[] EXTENSIONS = new String[]{
"png","jpg"// and other formats you need
};
// filter to identify images based on their extensions
final FilenameFilter IMAGE_FILTER = new FilenameFilter()
{
@Override
public boolean accept(final File dir, final String name) {
for (final String ext : EXTENSIONS) {
if (name.endsWith("." + ext)) {
return (true);
}
}
return (false);
}
};
if (file.isDirectory())
{
//list of files I get
for (final File fi : file.listFiles(IMAGE_FILTER))
{
OutputStream out =null;
OutputStream out1 =null;
BufferedImage bi =null;
try
{
System.out.println("file" +fi);
//I get different files from images folder and add that to bufferedImage.
bi= ImageIO.read(fi);
response.setContentType("image/jpeg");
out= response.getOutputStream();
ImageIO.write(bi, "png", out);
ImageIO.write(bi, "jpg", out);
out.close();
}
catch (final IOException e)
{
// handle errors here
e.printStackTrace();
}
}
}
资源不是文件。无法保证它们甚至会存在于文件系统中,只能存在于 JAR 或 WAR 文件中。所以使用 File 方法是行不通的。
在任何情况下,仅将图像流序列化到浏览器也是行不通的。您应该生成一个 HTML 页面,其中包含 <img>
元素,带有图像的 URL,并组织这些 URL 是可下载的。可能一开始就不适合使用资源机制。