⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 embed.java

📁 基于JPEG图像的数字密写方法 F5算法的JAVA程序
💻 JAVA
字号:
import james.*;import image.Bmp;import java.awt.*;import java.io.*;import java.util.*;import java.lang.*;public class Embed{    public static void StandardUsage() {        System.out.println("F5/JpegEncoder for Java(tm)");        System.out.println("");        System.out.println("Program usage: java Embed [Options] \"InputImage\".\"ext\" [\"OutputFile\"[.jpg]]");        System.out.println("");        System.out.println("You have the following options:");        System.out.println("-e <file to embed>\tdefault: embed nothing");        System.out.println("-p <password>\t\tdefault: \"abc123\", only used when -e is specified");        System.out.println("-q <quality 0 ... 100>\tdefault: 80");        System.out.println("-c <comment>\t\tdefault: \"JPEG Encoder Copyright 1998, James R. Weeks and BioElectroMech.  \"");        System.out.println("");        System.out.println("\"InputImage\" is the name of an existing image in the current directory.");        System.out.println("  (\"InputImage may specify a directory, too.) \"ext\" must be .tif, .gif,");        System.out.println("  or .jpg.");        System.out.println("Quality is an integer (0 to 100) that specifies how similar the compressed");        System.out.println("  image is to \"InputImage.\"  100 is almost exactly like \"InputImage\" and 0 is");        System.out.println("  most dissimilar.  In most cases, 70 - 80 gives very good results.");        System.out.println("\"OutputFile\" is an optional argument.  If \"OutputFile\" isn't specified, then");        System.out.println("  the input file name is adopted.  This program will NOT write over an existing");        System.out.println("  file.  If a directory is specified for the input image, then \"OutputFile\"");        System.out.println("  will be written in that directory.  The extension \".jpg\" may automatically be");        System.out.println("  added.");        System.out.println("");        System.out.println("Copyright 1998 BioElectroMech and James R. Weeks.  Portions copyright IJG and");        System.out.println("  Florian Raemy, LCAV.  See license.txt for details.");        System.out.println("Visit BioElectroMech at www.obrador.com.  Email James@obrador.com.");        System.out.println("Steganography added by Andreas Westfeld, westfeld@inf.tu-dresden.de");        System.exit(0);    }    public static void main(String args[]) {	Image image = null;	FileOutputStream dataOut = null;	File file, outFile;	JpegEncoder jpg;	int i, Quality = 80;// Check to see if the input file name has one of the extensions://     .tif, .gif, .jpg// If not, print the standard use info.	boolean haveInputImage = false;	String embFileName=null;	String comment="JPEG Encoder Copyright 1998, James R. Weeks and BioElectroMech.  ";	String password="abc123";	String inFileName=null;	String outFileName=null;	if (args.length < 1)	    StandardUsage();	for (i=0; i<args.length; i++) {	    if (!args[i].startsWith("-")) {		if (!haveInputImage) {		    if (!args[i].endsWith(".jpg") && !args[i].endsWith(".tif")			&& !args[i].endsWith(".gif") && !args[i].endsWith(".bmp"))			StandardUsage();		    inFileName = args[i];		    outFileName = args[i].substring(0, args[i].lastIndexOf(".")) + ".jpg";		    haveInputImage=true;		} else {		    outFileName = args[i];		    if (outFileName.endsWith(".tif") || outFileName.endsWith(".gif") || outFileName.endsWith(".bmp"))			outFileName = outFileName.substring(0, outFileName.lastIndexOf("."));		    if (!outFileName.endsWith(".jpg"))			outFileName = outFileName.concat(".jpg");		}		continue;	    }	    if (args.length < i+1) {		System.out.println("Missing parameter for switch "+args[i]);		StandardUsage();	    }	    if (args[i].equals("-e")) {		embFileName = args[i+1];	    } else if (args[i].equals("-p")) {		password = args[i+1];	    } else if (args[i].equals("-q")) {		try {		    Quality = Integer.parseInt(args[i+1]);		} catch (NumberFormatException e) {		    StandardUsage();		}	    } else if (args[i].equals("-c")) {		comment = args[i+1];	    } else		System.out.println("Unknown switch "					+args[i]+" ignored.");	    i++;	}	outFile = new File(outFileName);	i = 1;	while (outFile.exists()) {	    outFile = new File(outFileName.substring(0, outFileName.lastIndexOf(".")) + (i++) + ".jpg");	    if (i > 100)		System.exit(0);	}	file = new File(inFileName);	if (file.exists()) {	    try {		dataOut = new FileOutputStream(outFile);	    } catch(IOException e) {}	    if (inFileName.endsWith(".bmp")) {		Bmp bmp = new Bmp(inFileName);		image = bmp.getImage();	    } else		image = Toolkit.getDefaultToolkit().getImage(inFileName);	    jpg = new JpegEncoder(image, Quality, dataOut, comment);	    if (false)		jpg.Compress();	    else {		try {		    if (embFileName==null)			jpg.Compress();		    else			jpg.Compress(new FileInputStream(embFileName), password);		} catch (Exception e) {		    e.printStackTrace();		}	    }	    try {		dataOut.close();	    } catch(IOException e) {}	}	else {	    System.out.println("I couldn't find " + inFileName + ". Is it in another directory?");	}	System.exit(0);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -