[英]Java : Determine if String is an URL(without www or http), take its screenshot
我正在開發一個Spring-MVC Web應用程序,我們正在其中嘗試獲取URL的屏幕截圖。 目前,我正在為該任務使用PhantomJS,但是它太慢了(> 10秒)。 另外,URL必須帶有http / https和www才能檢測到它是URL。 由於這是一個聊天應用程序,因此可以有用戶添加的簡單URL,如helloworld.com
。 你能幫忙的話,我會很高興。 謝謝。
碼:
String[] words = message.split(" ");
for( String item : words ){
boolean val = ResourceUtils.isUrl(item);
if(val){
urlIdentifier = calcUrl(item);
break;
}else {
System.out.println("Url false is "+item);
}
}
if(urlIdentifier!=null){
replies.setPreviewIdentifier(urlIdentifier);
input.put("preview_identifier",urlIdentifier);
}
計算屏幕截圖的方法:
private String calcUrl(String website){
try {
String identifier = String.valueOf(new BigInteger(130, random).toString(32));
String previewLocation = msg + "chatthumbs/" + identifier ;
Process proc = Runtime.getRuntime().exec("phantomjs --ssl-protocol=any " +
"/home/deploy/phantom/rasterizepdf.js " +" "+website+" " +previewLocation);
proc.waitFor();
BufferedImage image = ImageIO.read(new File("/home/akshay/testme.png"));
if(image!=null){
if (image.getWidth() > image.getHeight()) {
image = Scalr.resize(image, Scalr.Mode.FIT_TO_HEIGHT, 250, 250);
} else {
image = Scalr.resize(image, Scalr.Mode.FIT_TO_WIDTH, 250, 250);
}
image = Scalr.crop(image, 250, 250);
ImageIO.write(image, "png", new File(previewLocation));
}
return identifier;
}catch (Exception e){
e.printStackTrace();
}
return null;
}
你能幫忙的話,我會很高興。 謝謝。
(b)系統是否太忙/在SSD上使用以查看速度是否更快?
(c)但是對於最終應用程序感到好奇,這是Web應用程序的一部分嗎? 您的代碼將如何在客戶端系統上運行? 還是將Java代理安裝在監視網頁並進行屏幕截圖的所有用戶系統上? 然后,為什么要使用網頁,使用Java應用程序聊天,並解析鍵入的文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.