91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 48KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-08
  • 語言: Java
  • 標簽: Java??JPEG??圖像編碼??

資源簡介

Java實現(xiàn)的JPEG算法,只有一個文件,但是支持調(diào)整壓縮質(zhì)量,方便學習圖像編碼

資源截圖

代碼片段和文件信息

//?Version?1.0a
//?Copyright?(C)?1998?James?R.?Weeks?and?BioElectroMech.
//?Visit?BioElectroMech?at?www.obrador.com.??Email?James@obrador.com.

//?See?license.txt?for?details?about?the?allowed?used?of?this?software.
//?This?software?is?based?in?part?on?the?work?of?the?Independent?JPEG?Group.
//?See?IJGreadme.txt?for?details?about?the?Independent?JPEG?Group‘s?license.

//?This?encoder?is?inspired?by?the?Java?Jpeg?encoder?by?Florian?Raemy
//?studwww.eurecom.fr/~raemy.
//?It?borrows?a?great?deal?of?code?and?structure?from?the?Independent
//?Jpeg?Group‘s?Jpeg?6a?library?Copyright?Thomas?G.?Lane.
//?See?license.txt?for?details.

import?java.applet.applet;
import?java.awt.*;
import?java.awt.image.*;
import?java.io.*;
import?java.util.*;
import?java.lang.*;

/*
*?JpegEncoder?-?The?JPEG?main?program?which?performs?a?jpeg?compression?of
*?an?image.
*/

public?class?JpegEncoder?extends?frame
{
????Thread?runner;
????BufferedOutputStream?outStream;
????Image?image;
????JpegInfo?JpegObj;
????Huffman?Huf;
????DCT?dct;
????int?imageHeight?imageWidth;
????int?Quality;
????int?code;
????public?static?int[]?jpegNaturalOrder?=?{
??????????0??1??8?16??9??2??3?10
?????????17?24?32?25?18?11??4??5
?????????12?19?26?33?40?48?41?34
?????????27?20?13??6??7?14?21?28
?????????35?42?49?56?57?50?43?36
?????????29?22?15?23?30?37?44?51
?????????58?59?52?45?38?31?39?46
?????????53?60?61?54?47?55?62?63
????????};

????public?JpegEncoder(Image?image?int?quality?OutputStream?out)
????{
????????????????MediaTracker?tracker?=?new?MediaTracker(this);
????????????????tracker.addImage(image?0);
????????????????try?{
????????????????????????tracker.waitForID(0);
????????????????}
????????????????catch?(InterruptedException?e)?{
//?Got?to?do?something?
????????????????}
????????/*
????????*?Quality?of?the?image.
????????*?0?to?100?and?from?bad?image?quality?high?compression?to?good
????????*?image?quality?low?compression
????????*/
????????Quality=quality;

????????/*
????????*?Getting?picture?information
????????*?It?takes?the?Width?Height?and?RGB?scans?of?the?image.?
????????*/
????????JpegObj?=?new?JpegInfo(image);

????????imageHeight=JpegObj.imageHeight;
????????imageWidth=JpegObj.imageWidth;
????????outStream?=?new?BufferedOutputStream(out);
????????dct?=?new?DCT(Quality);
????????Huf=new?Huffman(imageWidthimageHeight);
????}

????public?void?setQuality(int?quality)?{
????????dct?=?new?DCT(quality);
????}

????public?int?getQuality()?{
????????return?Quality;
????}

????public?void?Compress()?{
????????WriteHeaders(outStream);
????????WriteCompressedData(outStream);
????????WriteEOI(outStream);
????????try?{
????????????????outStream.flush();
????????}?catch?(IOException?e)?{
????????????????System.out.println(“IO?Error:?“?+?e.getMessage());
????????}
????}

????public?void?WriteCompressedData(BufferedOutputStream

評論

共有 條評論