Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Similar documents
PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - 2강

12-file.key

PowerPoint Presentation

K&R2 Reference Manual 번역본

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

Microsoft Word - java19-1-midterm-answer.doc

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

5장.key

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

gnu-lee-oop-kor-lec06-3-chap7

Design Issues

Microsoft PowerPoint - 04-UDP Programming.ppt

BMP 파일 처리

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

제11장 프로세스와 쓰레드

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

01-OOPConcepts(2).PDF

PowerPoint Presentation

Java ...

Contents Contents 2 1 Abstract 3 2 Infer Checkers Eradicate Infer....

PowerPoint Presentation

Cluster management software

PowerPoint Presentation

Java

09-interface.key

JMF2_심빈구.PDF

PowerPoint Presentation

자바 프로그래밍

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

JAVA PROGRAMMING 실습 02. 표준 입출력

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint Presentation

슬라이드 1

03장

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

Microsoft PowerPoint 장강의노트.ppt

비긴쿡-자바 00앞부속

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

JUNIT 실습및발표

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Javascript.pages

Semantic Consistency in Information Exchange

PowerPoint Presentation

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

07 자바의 다양한 클래스.key

신림프로그래머_클린코드.key

Microsoft PowerPoint - 03-TCP Programming.ppt

4장.문장

rmi_박준용_final.PDF

PowerPoint 프레젠테이션

Microsoft PowerPoint - CSharp-10-예외처리

02 C h a p t e r Java

슬라이드 1

Microsoft PowerPoint - lec2.ppt

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

PowerPoint Presentation

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

JMF3_심빈구.PDF

PowerPoint 프레젠테이션

05-class.key

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

PowerPoint 프레젠테이션

Microsoft PowerPoint - 14주차 강의자료

[ 프로젝트이름 ] : Project_Car [ 프로젝트를만든목적 ] : 임의의자동차판매소가있다고가정하고, 고객이원하는자동차의각부분을 Java 를이용하여객 체로생성하고, 그것을제어하는메소드를이용하여자동차객체를생성하는것이목표이다. [ 프로젝트패키지와클래스의내용설명 ] [

쉽게

슬라이드 1

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345])

쉽게 풀어쓴 C 프로그래밊

초보자를 위한 C# 21일 완성

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

C++ Programming

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

C++-¿Ïº®Çؼ³10Àå

Microsoft PowerPoint - Lect04.pptx

쉽게 풀어쓴 C 프로그래밍

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

C# Programming Guide - Types

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - java2-lab2-DirectoryImageConverter.pptx

PowerPoint 프레젠테이션

ThisJava ..

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

Transcription:

2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신

Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html BufferedImage image = null try {// reads the image image = ImageIO.read(new File(filename)); // prints the image width, height, extension(format) int width = image.getwidth(); int height = image.getheight(); String ext = filename.substring(filename.lastindexof(. ) + 1); System.out.println( filename= + filename); System.out.println( width= + width); System.out.println( height= + height); System.out.println( format= + ext); } catch (IOException e) { e.printstacktrace(); } Command line arguments, method, Scanner 클래스를이용한사용자입력

ImageTest

Lab#2 (ImageConverterTest) Lab#2 는영상 (Image) 파일의저장방식 (file format) 을변환 inputfile, outputfile, format 에따라이미지파일포맷을변환시켜줌 convert 메소드는입력이미지파일명 (inputimagefile), 출력이미지파일명 (outputimagefile), 이미지포맷 (format) 을입력받아서, 이미지파일포멧을변환하는메소드 for/foreach, if/else, switch, constant, while/do-while, Scanner 클래스를이용하여사용자입력받아서 image convert, 기본문법연습

Lab#2 (ImageConverterTest) // converts an image to another format (inputimagefile to outputimagefile with format) public static boolean convert(string inputimagefile, String outputimagefile, String format) { boolean result = false;; BufferedImage image = null; try { // reads input image from file image = ImageIO.read(new File(inputImageFile)); // writes to the output image in specified format result = ImageIO.write(image, format, new File(outputImageFile)); // prints the result if (result) { System.out.println(inputImageFile + " Image converted to " + outputimagefile + " successfully."); } else { System.out.println("Could not convert image."); } } catch (FileNotFoundException e) { e.printstacktrace(); } catch (IOException e) { e.printstacktrace(); } return result; }

ImageConverterTest inputimagefile outputimagefile format C:/JAVA/IMG1.JPG C:/JAVA/PIC1.png png

Lab#3 (ImageManipulatorTest) Lab#3 는영상 (Image) 파일 5 장을이용해서 print/convert/resize 등각종이미지변환을수행 ImageUtil 클래스는 print, convert, resize, grayscale 메소드제공 ConvertMode는 TO_JPG, TO_PNG, TO_GIF 열거형제공 ImageMode는 PRINT, CONVERT, RESIZE 열거형제공 UserInput 클래스는 getstring, getinteger, getintegerbetween, getimagemode, getconvertmode, getexitkey 메소드제공 ImageManipulatorTest 클래스에서는 print, convert, resize 등각종이미지변환을수행 class, enum, array 사용

ImageManipulatorTest

Lab#4 (ImageProcessorTest) Lab#4 는영상 (Image) 파일 10 장을이용해서 resize/rotate/grayscale 등각종이미지변환을수행 ImageUtil 클래스는 resize, rotate, grayscale, blur, adjust 메소드제공 ConvertMode 는 TO_JPG, TO_PNG, TO_GIF 열거형제공 ImageMode 는 CONVERT, RESIZE, ROTATE, GRAYSCALE, BLUR, BRIGHTNESS_ADJUST 열거형제공 UserInput 클래스는 getstring, getinteger, getintegerbetween, getimagemode, getconvertmode, getexitkey 메소드제공 Photo 클래스는이미지파일을읽어서 BufferedImage로저장 ImageProcessorTest 클래스에서는 Photo 클래스의객체를사용하여 convert, resize, rotate, grayscale, blur, adjust 등각종이미지변환을수행 Photo class 사용

Photo 클래스 이미지정보를가진 Photo 클래스를만든다. Photo 클래스는파일명, 이미지버퍼를멤버로한다. private String fullpath; // 파일명 private BufferedImage img; // 이미지버퍼 그리고메소드는다음을포함한다. public Photo(String fullpath) // 형변환생성자 public Photo(Photo other) // 복사생성자 public void load(string fullpath) // 이미지로딩 public static BufferedImage tocompatibleimage(bufferedimage image) // 하드웨어가속이미지버퍼 get 메소드 // 예 : getfullpath(), getimage(), getwidth(), getheight(), getformat() 등등 public String tostring() // tostring 메소드오버라이드 (override) static 각종유틸리티메소드등

public static void process() {// image process by user input String inputimage = UserInput.getString("Please enter [inputimagefilename]: "); Photo photo = new Photo(inputImage); ImageMode mode = UserInput.getImageMode("Please enter ImageMode [1.CONVERT 2.RESIZE 3.ROTATE 4.GRAYSCALE 5.BLUR 6.BRIGHTNESS_ADJUST]: "); switch (mode) { case CONVERT: ConvertMode cmode = UserInput.getConvertMode("Please enter ConvertMode [1.TO_JPG 2.TO_PNG 3.TO_GIF]: "); convert(photo, cmode); break; case RESIZE: int width = UserInput.getInteger("Please enter scaled width: "); int height = UserInput.getInteger("Please enter scaled height: "); resize(photo, width, height); break; case ROTATE: float angle = UserInput.getFloat("Please enter rotate angle: "); rotate(photo, angle); break; case GRAYSCALE: grayscale(photo); break; case BLUR: blur(photo); break; case BRIGHTNESS_ADJUST: float factor = UserInput.getFloat("Please enter brightness factor: "); adjust(photo, factor); break; } }

ImageProcessorTest

Lab#5 (ImageProcessorTestOOP) Lab#5 는 lab#4 를 OOP 로작성 ConvertMode 는 TO_JPG, TO_PNG, TO_GIF 열거형제공 ImageMode 는 CONVERT, RESIZE, ROTATE, GRAYSCALE, BLUR, BRIGHTNESS_ADJUST, NEGATIVE, EDGE_DETECT 열거형제공 UserInput 클래스는 getstring, getinteger, getintegerbetween, getimagemode, getconvertmode, getexitkey 메소드제공 Photo 클래스는이미지파일을읽어서 BufferedImage로저장 ImageProcessor 클래스를상속받은 ImageBlur, ImageBrightnessAdjust, ImageConvert, ImageEdgeDetect, ImageGrayscale, ImageNegative, ImageResize, ImageRoate 클래스를작성한다. ImageProcessorTestOOP 클래스에서는 ImageBlur, ImageBrightnessAdjust 등클래스를이용하여각종이미지변환을수행 ImageProcessor 클래스, Inheritance 사용 (ImageBlur, ImageBrightnessAdjust, ImageConvert, ImageEdgeDetect, ImageGrayscale, ImageNegative, ImageResize, ImageRotate)

ImageProcessor 클래스 이미지처리를하는 ImageProcessor 추상클래스를만든다. ImageProcessor클래스는 Photo 와 ImageMode를멤버로한다. private Photo photo; // 포토객체 protected ImageMode mode; // 이미지모드 그리고메소드는다음을포함한다. public ImageProcessor(String fullpath) // 이미지파일명으로 Photo 객체생성하는생성자 public ImageProcessor(Photo other) // Photo 객체를받아오는생성자 get 메소드 // 예 : getformat(), getimagemode(), getimg() 등 public abstract BufferedImage getprocessedimg() // 이미지처리된이미지버퍼 public abstract void getadditionaluserinput() // 이미지처리에필요한사용자입력정보

ImageBlur, ImageBrightnessAdjust, ImageConvert, ImageEdgeDetect, ImageGrayscale, ImageNegative, ImageResize, ImageRotate 클래스 ImageProcessor 추상클래스를상속받은각종영상처리클래스를만든다. ImageBlur 클래스는영상을부드럽게희미하게만든다. ImageBrightnessAdjust 클래스는영상의밝기를조절한다. ImageConvert 클래스는영상의포멧을변경한다. ImageEdgeDetect 클래스는영상의경계선검출 (edge detect) 를한다. ImageGrayscale 클래스는흑백영상을만든다. ImageNegative 클래스는반전영상을만든다. ImageResize 클래스는영상의크기를조절한다. ImageRotate 클래스는영상을회전한다. 추상클래스를상속받은클래스는추상메소드를구현해야한다. Public abstract BufferedImage getprocessedimg() // 이미지처리된이미지버퍼 public abstract void getadditionaluserinput() // 이미지처리에필요한사용자입력정보

ImageProcessorTestOOP