gpt4 book ai didi

java - 如何读取 JSP Web 应用程序中项目文件夹之一中的图像

转载 作者:行者123 更新时间:2023-12-01 11:17:04 24 4
gpt4 key购买 nike

我的项目目录如下。

Web Application
|__Web Pages
| | |__img
| | |__membershipcard.png
| |__ImageCreator.jsp
|
|__Source Packages
|__Functions
|__CardCreator.java

我有一个Java函数,它读取位于img文件夹中的图像,Java类如下。

public class CardCreator {

public static String MembershipCard() throws IOException {
String ImgUrl = "";
Image image = null;
// Read from an input stream
InputStream is = new BufferedInputStream(new FileInputStream("web/img/membershipcard.png"));
image = ImageIO.read(is);
Graphics g = image.getGraphics();
Graphics i = image.getGraphics();
g.setFont(new Font("TimesRoman", Font.PLAIN, 15));
g.setColor(Color.BLACK);
g.drawString("123456789", 334, 63);
g.drawString("Roger", 196, 138);
g.drawString("5", 299, 163);
g.drawString("05", 63, 221);
g.drawString("2015", 90, 221);
i.setFont(new Font("TimesRoman", Font.BOLD, 15));
i.setColor(Color.BLACK);
i.drawString("9874564", 395, 196);
g.dispose();
ImageIO.write((RenderedImage) image, "png", new File("test2.png"));
ImgUrl = "Hello";
return ImgUrl;
}

}

我从 ImageCreator.jsp 页面调用此函数,如下所示,它返回由 Java 函数创建的图像的 URL。

<%
String ImgUrl = new CardCreator().MembershipCard();
%>

我无法访问位于我提到的文件夹中的图像文件,以及如何将结果图像输出到我想要保存所有卡片的其他文件夹中。

请帮助我。

最佳答案

您可以使用 ServletContect 的 realPath,将其作为参数从调用 jsp 传递给 MembershipCard

public class CardCreator {

public static String MembershipCard(String path) throws IOException {
String ImgUrl = "";
Image image = null;
// Read from an input stream
InputStream is = new BufferedInputStream(new FileInputStream(path + "/img/membershipcard.png"));

...

return ImgUrl;
}

和JSP

<%
String ImgUrl = CardCreator.MembershipCard(pageContext.getServletContext().getRealPath("/"));
%>

既然您现在有了应用程序上下文的位置,请使用它来将您的文件保存在您希望JSP也可以访问的位置。

更好的方法是使用一个单独的类来在整个应用程序中维护此类公共(public)变量,而不是将其作为参数传递给方法。

关于java - 如何读取 JSP Web 应用程序中项目文件夹之一中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31698421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com