//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
블로그 이미지

왕왕왕왕

,


https://ko.wordpress.org/


주소로가면 한국어버전을 받을수 있다.  ZIP버전을 받으면된다.





압축해제하면 워드프레스 폴더가있는 창이뜬다. 복사한다.






복사한 워드프레드폴더를  www폴더안에 통째로 붙여넣기한다.





브라우저에 http://localhost/wordpress를 입력하면 화면이 뜬다


let'go 를 누르면 다섯가지 항목이 필요하다고 나온다.


  1. 데이터베이스 이름
  2. 데이터베이스 사용자명
  3. 데이터베이스 비밀번호
  4. 데이터베이스 호스트
  5. 테이블 접두어(하나의 데이터베이스에서 하나 이상의 워드프레스를 운영하고자 할 경우)
일단 디비를 만들어야되서 화면은 그대로 두로 시스템트레이에서 wamp아이콘클릭

phpMyAdmin을 선택하면 웹브라우저에 다음과같이 화면이나온다.


데이터베이스를 만들면 왼쪽처럼 워드프레스라는 디비가있다




다시 이전화면으로 돌아가서 생성된 디비를 항목에 적어준다.


비밀번호는 일다 빼놓고 아래처럼적는다.




비밀번호와 이메일을 자신의 걸로 적는다.




로그인




Mysql 비밀번호 설정




사이트가 연결한 디비비밀번호다 mysql비번과 동일하게 작성

이건 wamp아래 www디렉터리안에 복사했던 wordpress폴더에 있다.




이것도 마찬가지로 mysq비번과 동일하게  이건 wamp 아래 apps디렉터리에있다.




이렇게 서버환경 구성한후에 설치하는 방법을 알아봤다.


'워드프레스' 카테고리의 다른 글

워드프레스 WAMP설치법  (0) 2015.10.07
블로그 이미지

왕왕왕왕

,

WAMP는 내컴퓨터에 서버환경을 만들어 웹호스팅과같은 환경으로 구축하는거다


http://www.wampserver.com/en/


사이트에들어가서 다운로드메뉴에 Bit별로 페이지로이동하여 기다리면 다운로드된다.


다운받은 웜프를 설치한다 별다른 내용없이 NEXT 해준다.


설치하다가 smtp 서버 설정하는 부분이나온다. 그대로두고 메일주소만 자기껄로한다.



이렇게하면 웜프서버는 설치 끝

'워드프레스' 카테고리의 다른 글

워드프레스 워드프레스 설치  (0) 2015.10.07
블로그 이미지

왕왕왕왕

,

  <!-- 인코딩 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
블로그 이미지

왕왕왕왕

,

간단한 암호화


사용방법

select rawtohex(DBMS_CRYPTO.Hash(to_clob(passwd),2)) from dual;

두번째 파라미터 
1 : md4, 2 : md5, 3 : sh1 암호화 방식을 의미

넣을때 암호화하여 넣고, 비교할 때 문자열을 암호화 하여 비교 한다.
문자열 암호화 : rawtohex(DBMS_CRYPTO.Hash(to_clob(to_char('inputpw')),2)) 



여기서부터는 sqlplus를 이용해 작성한다.


-- dbms_crypto 에 대한 실행 권한만 부여하면 권한은 끝!

grant execute on DBMS_CRYPTO to sinu;

-- package 껍데기
CREATE OR REPLACE PACKAGE king_crypto
IS
    FUNCTION encrypt (
        input_string        IN  VARCHAR2 ,
        key_data IN VARCHAR2 := '12345678'
    ) RETURN RAW;
    
    FUNCTION decrypt (
        input_string        IN  VARCHAR2 ,
        key_data IN VARCHAR2 := '12345678'
    ) RETURN VARCHAR2;

END king_crypto;
/

-- package body 를 살펴보자
CREATE OR REPLACE PACKAGE BODY king_crypto
IS
-- 에러 발생시에 error code 와 message 를 받기 위한 변수 지정.
    SQLERRMSG   VARCHAR2(255);
    SQLERRCDE   NUMBER;

-- 암호화 함수 선언 key_data 는 입력하지 않을 시에 default 로 12345678 로 지정됨.
    FUNCTION encrypt (input_string IN VARCHAR2 , key_data IN VARCHAR2 := '12345678') 
     RETURN RAW
    IS
    
        key_data_raw        RAW(64);
        converted_raw       RAW(64);
        encrypted_raw       RAW(64);

    BEGIN

-- 들어온 data 와 암호키를 각각 RAW 로 변환한다.
        converted_raw := UTL_I18N.STRING_TO_RAW(input_string, 'AL32UTF8');
        key_data_raw     := UTL_I18N.STRING_TO_RAW(key_data, 'AL32UTF8');

-- DBMS_CRYPTO.ENCRYPT 로 암호화 하여 encrypted_raw 에 저장.
        encrypted_raw := 
             DBMS_CRYPTO.ENCRYPT(
                 src => converted_raw ,
-- typ 부분만 변경하면 원하는 알고리즘을 사용할 수 있다. 
--단, key value bype 가 다 다르니 확인해야 한다.
                 typ => DBMS_CRYPTO.DES_CBC_PKCS5 ,
                 key => key_data_raw ,
                 iv =>  NULL);
        
        RETURN encrypted_raw;
    END encrypt;

    FUNCTION decrypt (input_string IN VARCHAR2 , key_data IN VARCHAR2 := '12345678') 
     RETURN VARCHAR2
    IS
        converted_string    VARCHAR2(64);
        key_data_raw        RAW(64);
        decrypted_raw    VARCHAR2(64);

    BEGIN

        key_data_raw     := UTL_I18N.STRING_TO_RAW(key_data, 'AL32UTF8');
        
        decrypted_raw := 
            DBMS_CRYPTO.DECRYPT(
                 src => input_string ,
                 typ => DBMS_CRYPTO.DES_CBC_PKCS5 ,
                 key => key_data_raw ,
                 iv =>  NULL);

-- DBMS_CRYPTO.DECRYPT 수행 결과 나온 복호화된 raw data 를 varchar2 로 변환하면 끝!
        converted_string := UTL_I18N.RAW_TO_CHAR(decrypted_raw, 'AL32UTF8');

        RETURN converted_string;
    END decrypt ;
END king_crypto;
/


create table card_info ( id number, card_number varchar2(64) ) ;

-- 8자리 16자리 data 를 넣어보자.
insert into card_info values ( 1 , pkg_crypto.encrypt('1234567812345678')) ;
insert into card_info values ( 2 , pkg_crypto.encrypt('12345678')) ;
commit;

-- 암호화 되어 return 되는 bytes 가 다르다!
select * from card_info ;
        ID CARD_NUMBER                                     
---------- ----------------------------------------------------------------
         1 96D0028878D58C89D73FBE0238428B0A3D440C49910337FB
         2 96D0028878D58C898E250D5F4C76644B                

-- 복호화 해보니 정상적으로 잘 보인다.
select id , pkg_crypto.decrypt(card_number) card_number
from card_info;

        ID CARD_NUMBER                                     
---------- ----------------------------------------------------------------
         1 1234567812345678                                
         2 12345678                                        

-- key value 를 00000000 으로 바꾸어 보자
insert into card_info values ( 3 , pkg_crypto.encrypt('1234567812345678','00000000')) ;

-- 데이터는 id=1 과 같은데 key 가 다르므로 암호화된 값이 다름을 알 수 있다.
select * from card_info where id = 3;
        ID CARD_NUMBER                                     
---------- ----------------------------------------------------------------
         3 858B176DA8B125034356364E8179CD61040EE2CAC3041331

-- 복호화 할 때는 반드시 암호화 시 사용했던 key value 가 필요하다.
select id , pkg_crypto.decrypt(card_number,'00000000') card_number from card_info where id = 3  ;

        ID CARD_NUMBER                                     
---------- ----------------------------------------------------------------
         3 1234567812345678                                

출처 http://www.rudaks.co.kr/post/1316


블로그 이미지

왕왕왕왕

,