티스토리 뷰
php 에서는 스누피 클래스를 사용하면 URL 경로상의 이미지 다운이 가능 했었다.
그러나 자바에서는 해보지 않아서 몰랐는데 인터넷 서핑 하다가 도움이 되는 글이 있는거 같아서 갈무리 해왔다.
===========================================
소스코드는 인터넷에 도는 자료를 긁어다가 입맛에 맛게 약간 양념을 쳤다(수정을 가미)
문제는 코덱의 문제로 인해 JAI라는 라이브러리를 사용할 수 없었기 때문에(1.5까지 지원되고 deprecated가 아닌 걍 삭제)
- 대충 읽어보니 라이센스 문제인데.. 아마 소스라이센스같은 저작권 문제로 폐기한듯하다.
스택오버플로닷컴에 올라온 몇개의 소스는 되지가 않는다.
그러던중에 twelveMonkeys라는 라이브러리를 이용하여 하면 된다는 이야기가 있어서
라이브러리를 다운받으니 다운로드가 잘된다.
단, NoClassDefFoundError를 뿜어내긴 하지만.. 일단 파일이 다운되는 것을 봤으니
에러따위야 거슬리긴 하지만 문제가 없다.
다만 좀 찝찝할뿐..
해당라이브러리의 다운은
https://github.com/haraldk/TwelveMonkeys 에서 받으면 된다.
아래는 소스코드..
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.net.URL;
import javax.imageio.ImageIO;
/** 인터넷 주소를 이용해 이미지 파일을 다운받는 소스
* @author Kang
*
*/
public class ImageDown {
public static void main(String args[]) {
String fullPath = "http://imgnews.naver.com/image/sports/baseball_player/77748.jpg";
String urlPath ="http://imgnews.naver.com/image/sports/baseball_player/";
String fileName = fullPath.replace(urlPath, "");
String localPath ="C:/test";
System.out.println(localPath);
System.out.println(urlPath);
System.out.println(fileName);
imgFile(localPath,urlPath,fileName);
}
public static void imgFile(String localPath, String filePath, String fileName){
String file_ext=fileName.substring(
fileName.lastIndexOf('.')+1,
fileName.length());
BufferedImage image = null;
try{
System.out.println("filePath + fileName: "+filePath + fileName);
image = ImageIO.read(new URL(filePath + fileName));
BufferedImage bufferedImage = new BufferedImage(image.getWidth(),image.getHeight(), BufferedImage.TYPE_INT_BGR);
Graphics2D graphics = (Graphics2D) bufferedImage.getGraphics();
graphics.setBackground(Color.WHITE);
graphics.drawImage(image, 0, 0, null);
ImageIO.write(bufferedImage, file_ext, new File(localPath +"/"+fileName));
System.out.println(fileName+" 다운완료");
}catch(Exception e){
e.printStackTrace();
System.out.println("failed");
}
}
}
이건 보너스로 에러로그
중간 내 path는 지움
JMagick not available: java.lang.NoClassDefFoundError: magick/MagickImage
Make sure JMagick libraries are available in java.library.path. Current value:
"**********내 path**************"
Could not instantiate SVGImageReader (missing support classes).
java.lang.NoClassDefFoundError: org/apache/batik/transcoder/TranscoderException
at com.twelvemonkeys.imageio.plugins.svg.SVGImageReaderSpi.onRegistration(Unknown Source)
at javax.imageio.spi.SubRegistry.registerServiceProvider(Unknown Source)
at javax.imageio.spi.ServiceRegistry.registerServiceProvider(Unknown Source)
at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(Unknown Source)
at javax.imageio.spi.IIORegistry.<init>(Unknown Source)
at javax.imageio.spi.IIORegistry.getDefaultInstance(Unknown Source)
at javax.imageio.ImageIO.<clinit>(Unknown Source)
at com.knusoft.test.ImageDown.imgFile(ImageDown.java:48)
at com.knusoft.test.ImageDown.main(ImageDown.java:30)
Caused by: java.lang.ClassNotFoundException: org.apache.batik.transcoder.TranscoderException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more
출처:
https://m.blog.naver.com/grosh/208942750
'자바(Java) > 스크래핑, 크롤링' 카테고리의 다른 글
JAVA Crawling(크로울링) 기본 (0) | 2020.07.07 |
---|---|
자바 네이버지도 정보 스크래핑 크롤링 (2) | 2020.01.01 |
자바 특정시간에 실행 (0) | 2018.06.19 |
[JAVA] 자바 클립보드 사용하기 (0) | 2018.06.19 |
[JAVA] 자바 메모장 실행 및 텍스트 파일 열기 (실행시키기) (0) | 2018.06.19 |
- Total
- Today
- Yesterday
- 프로씨
- 자바
- ocjap
- 라이믹스 모듈
- Python
- XE3
- 파이썬
- EC
- XE
- php
- webix
- KG
- 인포믹스
- 플러터
- C
- 오라클
- xe애드온
- 이클립스
- 자바 smtp
- proc
- ocajp
- C언어
- MySQL
- JDBC
- 파싱
- esql
- xe addon
- 스크래핑
- 포인터
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |