想實作圖片打水印功能
原圖沒水印,通過指定的地址或介面訪問 會加水印
現在的想法是打開 https://bbs.xxxx.net/?img=sadfg.jpg
然后根據這個引數img這個引數,去找存盤路徑的圖片,
找到后加水印 并回傳給客戶,或瀏覽器。
這中間怎么讀圖片變成“流”
再把這“流”加水印。 加水印的“輪子”我有了,
就是不知道怎么得到這個io“流”
uj5u.com熱心網友回復:
搜索”servlet 檔案流 輸出 “
其中一個結果:
https://www.cnblogs.com/zj0208/p/8945158.html
uj5u.com熱心網友回復:
你需要ByteArrayInputStream/ByteArrayOutputStream,一切都在記憶體中操作uj5u.com熱心網友回復:
找到存盤路徑的圖片,這不就等于拿到流了?FileInputStream沒學過嗎?或者你想問的是如何將有水印的圖片回應到前端瀏覽器?一樓應該可以解決你的問題
uj5u.com熱心網友回復:
BufferedImage image(將圖片生成這個物件) ;ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
IOUtils.closeQuietly(out);
uj5u.com熱心網友回復:
感謝各位大佬,應該是2樓老哥說的那樣還有其他操作類嗎,就這2個類比較常用嗎,
感謝4樓老哥的代碼,謝謝
uj5u.com熱心網友回復:
這是登陸頁回傳驗證碼的例子@RequestMapping("captcha.jpg")
public void captcha(HttpServletResponse response)throws IOException {
response.setHeader("Cache-Control", "no-store, no-cache");
response.setContentType("image/jpeg");
//生成文字驗證碼
String text = producer.createText();
//生成圖片驗證碼
BufferedImage image = producer.createImage(text);
//保存到shiro session
ShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
}
uj5u.com熱心網友回復:
流可以解決一切傳輸需求~轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/19311.html
標籤:Web 開發
上一篇:java對jdbc.properties檔案的資料庫賬號密碼進行加密,查詢時不能正常查詢,不能解密
下一篇:誰能看出下面這段js代碼的作用
