Sort 선택정렬

JAVA/Sort 2015. 10. 17. 15:22

import java.rmi.server.RemoteObjectInvocationHandler;

import java.util.ArrayList;

import java.util.Iterator;


public class Selection {


private static ArrayList arr;


public static void main(String[] args) {

// TODO Auto-generated method stub

Random(10000);

System.out.println("최소값은 " + reMin(arr, "min"));

System.out.println("최대값은 " + reMin(arr, "max"));


}


public static ArrayList<Integer> Random(int num) {

arr = new ArrayList<Integer>();

for (int i = 0; i < num; i++) {

int dec = (int) (Math.random() * num);

if (!arr.contains(dec)) {

arr.add(dec);

} else {

i--;

}

}


return arr;

}


public static int reMin(ArrayList<Integer> arr, String choice) {


selectSort(arr);


switch (choice) {

case "min":

return arr.get(0);

case "max":

return arr.get(arr.size() - 1);

default:

break;

}


return -1;

}


//선택정렬

public static ArrayList<Integer> selectSort(ArrayList<Integer> arr) {

int tmp;

for (int i = 0; i < arr.size(); i++) {

for (int j = i + 1; j < arr.size(); j++) {

if (arr.get(j) < arr.get(i)) {

tmp = arr.get(j);

arr.remove(j);

arr.add(j, arr.get(i));

arr.remove(i);

arr.add(i, tmp);

}

}

}


return arr;

}


}


블로그 이미지

왕왕왕왕

,

Arrays.sort(wa.toArray());

       System.out.println(Collections.min(wa));


Arrays에 sort를 이용해 정렬하고, Collections에 min을 이용해 최소값을 뽑음

블로그 이미지

왕왕왕왕

,

package ocrtest;


import java.awt.Color;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.awt.image.PixelGrabber;

import java.io.File;


import javax.imageio.ImageIO;

import javax.swing.ImageIcon;

import javax.swing.JFrame;


public class image {


static BufferedImage newImage;

private static Image resizeImage;


public static void main(String[] args) {

Image img = new ImageIcon("im/gi.jpg").getImage();

int width = img.getWidth(null);

int height = img.getHeight(null);


int[] pixels = new int[width * height];



newImage = 

   new BfferedImage(width,height,BufferedImage.TYPE_INT_RGB);

int color = Color.DARK_GRAY.getRGB();


for (int i = 0; i < pixels.length; i++) {

if ((pixels[i] & 0xff) == 0 || ((pixels[i] >> 16) & 0xff) == 0 || ((pixels[i] >> 8) & 0xff) == 0) {

newImage.setRGB(i % width, i / width, color);


}

}

Graphics g = newImage.getGraphics();

ImageIO.write(newImage, "jpg", new File("C:/save/새 사진파일명.jpg")); } catch (Exception e) {

e.printStackTrace();

}

}


}



소스설명


1.Image img = new ImageIcon("im/gi.jpg").getImage();

이미지를 가져온다


2.int width = img.getWidth(null);

int height = img.getHeight(null);

가로 세로 크기를 받아온다.


3.int[] pixels = new int[width * height];

픽셀을 배열화 시킴


4.newImage = 

   new BfferedImage(width,height,BufferedImage.TYPE_INT_RGB);

불러온 이미지와 같은 가로세로 크기의 그릴판을 만들어줌


5.int color = Color.DARK_GRAY.getRGB();

다크그레이색을 변수에만들어서 색준비


6.for (int i = 0; i < pixels.length; i++)

                  {

if ((pixels[i] & 0xff) == 0 || ((pixels[i] >> 16) & 0xff) == 0 || ((pixels[i] >> 8) & 0xff) == 0) 


                  {


newImage.setRGB(i % width, i / width, color);


}


RGB값이 000으로 검은색 이미지 픽셀일때 다크그레이색으로 똑같이 그린다.

}



7. ImageIO.write(newImage, "jpg", new File("C:/save/새 사진파일명.jpg"));

불러온 이미지와 같은 사이즈로 다크그레이색으로 새로그린다.


}

 catch (Exception e) {


e.printStackTrace();



일단 이런식으로 형태비교해서 문자인식을 할거다








블로그 이미지

왕왕왕왕

,


//1. 파일에서 이미지 불러오기

Image orginalImage = ImageIO.read(new File("im/gi.jpg"));


//2. 이미지 사이즈 수정

Image resizeImage = orginalImage.getScaledInstance( 200, 200, Image.SCALE_SMOOTH); //속도보다 이미지 부드러움 우선

//(SCALE_AREA_AVERAGING, SCALE_DEFAULT, SCALE_FAST, SCALE_REPLICATE, SCALE_SMOOTH 중에 선택)


//3. 결과물을 옮길 이미지 생성

BufferedImage newImage = new BufferedImage( 200, 200, BufferedImage.TYPE_INT_RGB );


//4. 생성한 이미지에 크기 수정된 이미지 그리기

Graphics g = newImage.getGraphics();

g.drawImage(resizeImage, 0, 0, null);

g.dispose();


//5. 새로 생성한 이미지를 파일로 저장하기

ImageIO.write(newImage, "jpg", new File("C:/save/새 사진파일명.jpg"));



'JAVA > 자바' 카테고리의 다른 글

자바 Arraylist 정렬후 최소값 구하기 간단하게  (0) 2015.10.15
자바 이미지 형태 비교  (0) 2015.10.14
자바 이미지 픽셀 비교  (0) 2015.10.12
자바 메일보내기  (3) 2015.10.06
자바 팩토리얼  (0) 2015.09.10
블로그 이미지

왕왕왕왕

,

package ocrtest;


import java.awt.Image;

import java.awt.image.PixelGrabber;


import javax.swing.ImageIcon;


public class image {

public static void main(String[] args) {

Image img = new ImageIcon("im/gi.jpg").getImage();

Image img1 = new ImageIcon("im/gi1.jpg").getImage();


int width = img.getWidth(null);

int height = img.getHeight(null);


int width1 = img1.getWidth(null);

int height1 = img1.getHeight(null);


int[] pixels = new int[width * height];

int[] pixels1 = new int[width1 * height1];


PixelGrabber grab = 

   new PixelGrabber(img, 0, 0, width, height, pixels, 0, width);

PixelGrabber grab1 = 

  new PixelGrabber(img1, 0, 0, width1, height1, pixels1, 0, width1);


try {

grab.grabPixels();

grab1.grabPixels();


int[][] picture = new int[width][height];

int[][] picture1 = new int[width1][height1];

if (pixels.length != pixels1.length) {

System.out.println("사이즈 다름");

} else {

System.out.println("1 "+grab.getWidth()+" "+grab.getHeight());

System.out.println("2 "+grab1.getWidth()+" "+grab1.getHeight());

}


for (int i = 0; i < pixels.length; i++) {

picture[i % width][i / width] = pixels[i];

picture1[i % width1][i / width1] = pixels1[i];


if (picture[i % width][i / width] == picture1[i % width1][i / width1]) {


} else {


System.out.println(i + " 번째 픽셀 : " + picture[i % width][i / width]); System.out.println(i + " 번째 픽셀 : " + picture1[i % width1][i / width1]);

System.out.println("다른이미지 종료");

return;

}

}

System.out.println("같은 이미지");


} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


}



// System.out.println("alpha " + ((picture[i % width][i / width] >>24) &0xff));

// System.out.println("R " + ((picture[i % width][i / width] >> 16) & 0xff));

// System.out.println("G " + ((picture[i % width][i / width] >> 8) & 0xff));

// System.out.println("B " + (picture[i % width][i / width] & 0xff));



'JAVA > 자바' 카테고리의 다른 글

자바 이미지 형태 비교  (0) 2015.10.14
자바 이미지 불러와서 수정 후 저장  (0) 2015.10.13
자바 메일보내기  (3) 2015.10.06
자바 팩토리얼  (0) 2015.09.10
자바 피보나치수열  (0) 2015.09.10
블로그 이미지

왕왕왕왕

,

  <!-- 인코딩 utf-8 -->

  

  <filter>

        <filter-name>encodingFilter</filter-name>

        <filter-class>

            org.springframework.web.filter.CharacterEncodingFilter

    </filter-class>

    <init-param>

            <param-name>encoding</param-name>

            <param-value>UTF-8</param-value>

        </init-param>

</filter>

<filter-mapping>

        <filter-name>encodingFilter</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

    <!-- END 인코딩 utf-8 -->


위에 web.xml에도 맵핑시켜주고

아래 jsp파일은 자신꺼에서 euc-kr을 몽땅 utf-8로 바꾸면 일단 ok




'JAVA > Spring 4.0' 카테고리의 다른 글

Spring4.0 mybatis에 SqlSessionDaoSupport  (0) 2016.07.13
Spring4.0 Mybatis $ , # 차이점  (0) 2015.10.01
Spring4.0 Mybatis 프로젝트 기본구조  (0) 2015.10.01
Spring4.0 Mybatis (pom.xml)  (0) 2015.10.01
Spring4.0 JDBCTemplate  (0) 2015.10.01
블로그 이미지

왕왕왕왕

,


<script type="text/javascript">

$(document).ready(function() {

$("#btn").click(function() {

if ($("#title").val() != "") {

var cul_addr = $("input[name=bName]").val();

var cul_addr2 = $("input[name=bTitle]").val();

  var cul_addr3 = $("textarea[name=bContent]").val();


var addr = escape(encodeURIComponent(cul_addr + " " + cul_addr2+" "+ cul_addr3)); //인코딩부분

$.ajax({

type : "POST",

url : "write1",

data : "addr=" + addr,

dataType : "xml",

async : false,

success : 

location.href='/ex/qna'

});

/* $("#writeForm").attr({

action : 'write1',

method : 'get'

}).submit();*/

} else {

alert("빈칸 없이");

}

});

});


jsp에서 ajax로 인코딩해서 보낸다 write1이라는 이름으로 컨트롤러에서 받고




컨트롤러


@RequestMapping("/write1")

public String write(HttpServletRequest request, Model model) throws UnsupportedEncodingException {


model.addAttribute("request", request);

command = new                                  com.javalec.command1.BWriteCommand1();

command.execute(model);


return "redirect:qna";

}



모델을 커맨드클래스로 넘겨준다 





커맨드


public class BWriteCommand1 implements BCommand1 {


@Override

public void execute(Model model) {

// TODO Auto-generated method stub


Map<String, Object> map = model.asMap();

HttpServletRequest request = (HttpServletRequest) map.get("request");

try {

String[] deArray = URLDecoder.decode((String) request.getParameter("addr"), "utf-8").split(" ");

//디코딩부분

String bName = deArray[0];

String bTitle = deArray[1];

String bContent = deArray[2];

String bCode = request.getParameter("bCode");// 코드는 필요없음

com.javalec.dao1.BDao1 dao = new com.javalec.dao1.BDao1();

dao.write(bName, bTitle, bContent, bCode);

} catch (UnsupportedEncodingException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}


}


}


처음에 보내줄때 "이름 제목 내용" 이런식으로 보내줬다

커맨드에서 " "를 구분자로 디코딩해주면서 스플릿한다.

배열로받고 순서대로 변수에 넣어주면된다.


ajax로 보낼때 인코딩 디코딩하는이유는 한글깨짐을 방지하기위해서이다.






'JAVA > Jquery' 카테고리의 다른 글

Jquery Date full  (0) 2016.06.02
Jquery url get parameter 가져오기  (0) 2016.05.18
Jquery addClass  (0) 2015.10.02
Jquery Submit 하기  (0) 2015.09.22
Jquery select 제어  (0) 2015.08.25
블로그 이미지

왕왕왕왕

,

자바 메일보내기

JAVA/자바 2015. 10. 6. 20:35

package test;


import java.util.Date;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;


public class aa {

public static void main(String[] args) {

Properties p = System.getProperties();

p.put("mail.smtp.starttls.enable", "true");// gmail은 무조건 true 고정

p.put("mail.smtp.host", "smtp.gmail.com");// smtp 서버 주소

p.put("mail.smtp.auth", "true");// gmail은 무조건 true 고정

p.put("mail.smtp.port", "587");// gmail 포트


Authenticator auth = new MyAuthentication();


// session 생성 및  MimeMessage생성

Session session = Session.getDefaultInstance(p, auth);

MimeMessage msg = new MimeMessage(session);

try {

// 편지보낸시간

msg.setSentDate(new Date());

InternetAddress from = new InternetAddress();


from = new InternetAddress("kid88exp@gmail.com");

// 이메일 발신자

msg.setFrom(from);


// 이메일 수신자

InternetAddress to = new InternetAddress("dusdhkd8@gmail.com");

msg.setRecipient(Message.RecipientType.TO, to);

// 이메일 제목

msg.setSubject("메일 전송 테스트", "UTF-8");

// 이메일 내용

msg.setText("내용", "UTF-8");

// 이메일 헤더

msg.setHeader("content-Type", "text/html");

// 메일보내기

javax.mail.Transport.send(msg);

} catch (AddressException addr_e) {

addr_e.printStackTrace();

} catch (MessagingException msg_e) {

msg_e.printStackTrace();

}

}

}


class MyAuthentication extends Authenticator {


PasswordAuthentication pa;


public MyAuthentication() {


String id = "kid88exp@gmail.com";// 구글 ID

String pw = "dbggxfqqagjlzkxc";// 구글 비밀번호

// ID와 비밀번호를 입력한다.

pa = new PasswordAuthentication(id, pw);

}


// 시스템에서 사용하는 인증정보

public PasswordAuthentication getPasswordAuthentication() {

return pa;

}

}




소스 실행하기전에 해야 될 일이있다.





웹프로젝트인데 lib폴더에 2개 jar파일을 추가해준다.


https://java.net/projects/javamail/pages/Home

자바 6 이후로는 javax.mail.jar만 필요하다. activation.jar가 jre에 기본으로 포함되었다.




다른기기에서 로그인할때 필요한 앱비밀번호 생성하는 법이다.



자기계정 로그인하고 ..






1~4절차까지 인증받고 끝내면된다.




다시 이페이지로 돌아가서 앱비밀번호라는 놈이 생겼다.




기기를 윈도우컴퓨터로설정하고 메일로선택하고 생성을 누르면 




비밀번호가 나오는데 그비밀번호를 복사해서 MyAuthoentication클래스에 pw값으로 넣어주면된다.





'JAVA > 자바' 카테고리의 다른 글

자바 이미지 불러와서 수정 후 저장  (0) 2015.10.13
자바 이미지 픽셀 비교  (0) 2015.10.12
자바 팩토리얼  (0) 2015.09.10
자바 피보나치수열  (0) 2015.09.10
자바 SQL 소스  (0) 2015.08.25
블로그 이미지

왕왕왕왕

,