![](/img/trans.png)
[英]JSP - How to use an image, sent from a servlet, amongst the HTML a JSP page?
[英]How rotate image and save it from JSP/Servlet page
我能夠成功使用JQueryRotate在JSP頁面中旋轉圖像。 但是,用戶現在希望具有保存旋轉圖像的功能。
但是從我到目前為止收集的數據來看,似乎不可能在此客戶端進行操作。 因此,我可能必須重新開始。
是否可以對JSP / Servlet中渲染的圖像進行具有保存功能的旋轉圖像? 如果是,怎么辦?
編輯:順便說一句,HTML5是不可能的,因為我的要求是仍然支持IE9。
好吧,僅作總結。 使用非HTML5瀏覽器-無法將修改的內容保存在客戶端圖片上。 在現代瀏覽器中-您可以嘗試保存包含圖像的畫布。 另外,您可以跟蹤css的變換,並根據需要渲染變換后的圖像,但這是服務器端的內容,只會顯示旋轉的圖像,而不是保存它。 您可以做的另一件事是,當用戶要求保存操作時,將轉換后的圖像發送到服務器,使用服務器端的圖像處理軟件/庫旋轉/轉換圖像,然后將新圖像發送回客戶端。 這可能有效,例如php有一些圖像庫。 順便說一句,一些社交網站共享圖像,但是,我認為,當用戶上傳圖像並將其保存在服務器上時,所有的轉換(裁剪,剪切,調整大小,旋轉...)都在服務器上進行。 順便說一句,前一段時間(2),在J2EE應用程序中,由於用戶需求,我們不得不執行類似的操作-將在瀏覽器中呈現的圖像保存到客戶端計算機。 將嘗試挽救這個想法,如果有有趣的事情,將其發布。
編輯以下是我們之前為保存屏幕截圖而編寫的一些代碼:
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import javax.imageio.ImageIO;
public class Screenshot {
public Screenshot() {
}
public static void imageCapture(int left, int top, int width, int height, String outFileName, String imgFormat) {
if (!outFileName.toUpperCase().endsWith(imgFormat)) {
outFileName += "." + imgFormat;
}
try {
Robot robot = new Robot();
BufferedImage bi = robot.createScreenCapture(new Rectangle(left, top, width, height));
ImageIO.write(bi, imgFormat, new File(outFileName));
}
catch (AWTException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
public static void imageCapture(int left, int top, int width, int height, OutputStream outStream, String imgFormat) {
try {
Robot robot = new Robot();
BufferedImage bi = robot.createScreenCapture(new Rectangle(left, top, width, height));
ImageIO.write(bi, imgFormat, outStream);
}
catch (AWTException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
如您所見,我們使用了java.awt。 將完整的文件路徑或已准備好的OutputStream設置為要寫入的文件,然后將圖像文件發送回瀏覽器。 這種方法有一個缺點-如果進行滾動,則不會捕獲窗口外的parte(例如說“ scrolled out”)。 好吧,實際上它有很多缺點,但這就是我所擁有的,您可以進行一些研究。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.