// 소켓 생성

Socket socket = new Socket(dstAddress, dstPort);

// 데이터 전송용 스트림 생성

DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

System.out.println("파일 전송 작업을 시작합니다.");


// 파일 이름 전송

// String fName = "작업용a.txt";

// String fName = "피티a.ppt";

// String fName = "작업용a.jpg";

String fName = "작업용a.png";

dos.writeUTF(fName);

System.out.printf("파일 이름(%s)을 전송하였습니다.\n", fName);


// 파일 내용을 읽으면서 전송

BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(bitmapToByteArray(b)));


int len;

int size = 4096;

byte[] data = new byte[size];

while ((len = bis.read(data)) != -1) {

dos.write(data, 0, len);

}


dos.flush();

dos.close();

bis.close();

System.out.println("파일 전송 작업을 완료하였습니다.");

System.out.println("보낸 파일의 사이즈 : " + bitmapToByteArray(b).length);

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

자바 멀티파트  (0) 2015.11.02
자바 스트림 종류  (0) 2015.10.29
자바 이미지파일 전송 서버쪽  (0) 2015.10.29
자바 tess4j import 하기  (0) 2015.10.27
자바 OCR 오픈소스 tess4j  (0) 2015.10.27
블로그 이미지

왕왕왕왕

,


System.out.println("from " + socket.getInetAddress() + ":" + socket.getPort());


try {

System.out.println("파일 수신 작업을 시작합니다.");

DataInputStream dis = new DataInputStream(socket.getInputStream());


// 파일명을 전송 받고 파일명 수정.

String fName = dis.readUTF();

System.out.println("파일명 " + fName + "을 전송받았습니다.");


// 파일을 생성하고 파일에 대한 출력 스트림 생성


BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:/save/to.jpg"));

System.out.println(fName + "파일을 생성하였습니다.");


// 바이트 데이터를 전송받으면서 기록

ArrayList<Byte> b = new ArrayList<>();

int sum = 0;

int len;

int size = 4096;

byte[] data = new byte[size];


while ((len = dis.read(data)) != -1) {

bos.write(data, 0, len);

sum += len;

}

System.out.println(data + " " + len+" "+sum);


bos.flush();

bos.close();

dis.close();

System.out.println("파일 수신 작업을 완료하였습니다.");

System.out.println("받은 파일의 사이즈 : " + sum);



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

자바 스트림 종류  (0) 2015.10.29
자바 이미지파일 전송 클라이언트쪽  (0) 2015.10.29
자바 tess4j import 하기  (0) 2015.10.27
자바 OCR 오픈소스 tess4j  (0) 2015.10.27
자바 특정 경로 안에 파일목록 출력  (0) 2015.10.24
블로그 이미지

왕왕왕왕

,



tess4j.jar을 자바프로젝트에서 라이브러리 추가함





여기있는 라이브러리도 다추가해야줘야됨




블로그 이미지

왕왕왕왕

,

package test4j;



import java.io.File;


import net.sourceforge.tess4j.Tesseract;

import net.sourceforge.tess4j.TesseractException;


public class test {


public static void main(String[] args) {

// TODO Auto-generated method stub





       File imageFile = new File("C:/Users/swu09/Downloads/Tess4J-2.0-src/Tess4J/Korean.jpg");     Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping

       

       instance.setDatapath("C:/Users/swu09/Downloads/Tess4J-2.0-src/Tess4J/tessdata");

       // Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping

       System.out.println(imageFile.canRead());

       try {

           String result = instance.doOCR(imageFile);

           System.out.println(result);

       } catch (TesseractException e) {

           System.err.println(e.getMessage());

       }

}


}



위소스가 샘플소스이고 응용하면된다. 중간에 setDatapath는 tessdata폴더 경로까지 써주면된다. 안쓰면 오류나기도함


블로그 이미지

왕왕왕왕

,

package fileFind;

import java.io.File;

public class dirFind {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String path = "C:/";
        //c:/Users/king/Downloads/asprise-ocr-java-15.3.1-trial-windows/aocr/com/asprise/ocr
        File dirFile = new File(path);
        File[] fileList = dirFile.listFiles();
        System.out.println(fileList.length);
        for (File tempFile : fileList) {
           
           
            if (tempFile.isFile()) {
                String tempPath = tempFile.getParent();
                String tempFileName = tempFile.getName();
                System.out.println("Path=" + tempPath);
                System.out.println("FileName=" + tempFileName);
                /*** Do something withd tempPath and temp FileName ^^; ***/
            }
        }
    }

}

블로그 이미지

왕왕왕왕

,

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

왕왕왕왕

,