jpegjava代码 jpeg源码

java中JPEGImageEncoder的用法StringsrcFileName="x:\\dd\\test.jpg";//源图像路径
StringdestFileName="x:\\dd\\test.jpg";//源图像路径
BufferedImage originalPic = ImageIO.read(new FileInputStream(srcFileName));
int imageWidth = originalPic.getWidth();
int imageHeight = originalPic.getHeight();
//产生新的图像缓冲对象
BufferedImage newBufferedImage = new BufferedImage(imageWidth, imageHeight,
BufferedImage.TYPE_3BYTE_BGR);
//颜色转换(黑白)
ColorConvertOp cco = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
cco.filter(originalPic, newBufferedImage);
FileOutputStream fos = new FileOutputStream(destFileName);
if (destFileName.toLowerCase().endsWith(".gif")) {
ImageIO.write(newBufferedImage, "gif", fos);
}
if (destFileName.toLowerCase().endsWith(".png")) {
ImageIO.write(newBufferedImage, "png", fos);
}
//针对jpeg、jpg设置输出编码
if ((destFileName.toLowerCase().endsWith(".jpg"))
|| (destFileName.toLowerCase().endsWith(".jpeg"))) {
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(newBufferedImage);
param.setQuality(1.0F, false);
encoder.encode(newBufferedImage);
}
fos.flush();
fos.close();
重点解释一下:
针对jpeg、jpg设置输出编码
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
用java如何读取Jpeg2000,速求解决方案和代码import java.util.*;
public class Main7 {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
String str=reader.next();//读取为字符串jpegjava代码,如果读取为其jpegjava代码他也可以jpegjava代码,不满意再追问
【jpegjava代码 jpeg源码】 }
}
用JAVA做一个JPEG图像生成器运行下试试!·
import java.awt.*;
import java.util.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import com.sun.image.codec.jpeg.*;
class Point
{int x,y;
Point(int x,int y)
{this.x=x;this.y=y;
}
}
public class MakeJPEG extends Canvas implements MouseMotionListener,MouseListener,ActionListener
{
int x=-1,y=-1,橡皮擦通知=0,清除通知=0;
Vector v=null;int n=1;
Graphics2Dggg ;
BufferedImage image;
Frame window;
Button 保存,调色板,橡皮,清除,画笔,获取屏幕,绘制图形;
Color 画笔颜色;
Panel pCenter,pSouth,pNorth;
public MakeJPEG()
{
保存=new Button("将绘制的图形或屏幕保存为JPG文件");
获取屏幕=new Button("获取屏幕");
绘制图形=new Button("绘制图形");
调色板=new Button("打开调色板");
画笔=new Button("画笔");
橡皮=new Button("橡皮");
清除=new Button("清除");
调色板.addActionListener(this);
绘制图形.addActionListener(this);
保存.addActionListener(this);
画笔.addActionListener(this);
橡皮.addActionListener(this);
清除.addActionListener(this);
获取屏幕.addActionListener(this);
画笔颜色=new Color(0,0,0);
addMouseMotionListener(this);
addMouseListener(this);
v=new Vector();
setBackground(Color.white);
image=new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
ggg=image.createGraphics();
Rectangle2D rect=new Rectangle2D.Double(0,0,200,200);
ggg.setColor(getBackground());
ggg.fill(rect);
window=new Frame("JPEG图像生成器");
pCenter=new Panel();
pCenter.setLayout(null);
pCenter.add(this);
pCenter.setBackground(Color.gray);
this.setBounds(80,30,210,210);
window.add(pCenter,BorderLayout.CENTER);
pNorth=new Panel();
pNorth.add(保存);
pNorth.add(绘制图形);
pNorth.add(获取屏幕);
window.add(pNorth,BorderLayout.NORTH);
pSouth=new Panel();
pSouth.add(调色板);
pSouth.add(橡皮);
pSouth.add(清除);
pSouth.add(画笔);
window.add(pSouth,BorderLayout.SOUTH);
window.setVisible(true);
window.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
window.setBounds(100,80,390,380);
window.validate();
}
public void paint(Graphics g)
{
if(x!=-1y!=-1橡皮擦通知==0清除通知==0)
{
g.setColor(画笔颜色);
n=v.size();
for(int i=0;in-1;i)
{
Point p1=(Point)v.elementAt(i);
Point p2=(Point)v.elementAt(i 1);
g.drawLine(p1.x,p1.y,p2.x,p2.y);
ggg.setColor(g.getColor());
ggg.drawLine(p1.x,p1.y,p2.x,p2.y);
}
}
else if(橡皮擦通知==1清除通知==0)
{
g.setColor(getBackground());
g.fillRect(x-2,y-2,4,4);
ggg.setColor(getBackground());
ggg.fillRect(x-2,y-2,4,4);
}
else if(清除通知==1橡皮擦通知==0)
{
g.setColor(getBackground());
g.fillRect(0,0,200,200);
ggg.setColor(getBackground());
ggg.fillRect(0,0,200,200);
}
g.drawImage(image,0,0,200,200,this);
}
public void mouseDragged(MouseEvent e)
{
x=(int)e.getX();
y=(int)e.getY();
Point p=new Point(x,y);
v.addElement(p);
repaint();
}
public void mouseMoved(MouseEvent e)
{}
public void mousePressed(MouseEvent e)
{}
public void mouseReleased(MouseEvent e)
{
v.removeAllElements();
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void update(Graphics g)
{
{
paint(g);
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==橡皮)
{
橡皮擦通知=1;
清除通知=0 ;
}
else if(e.getSource()==清除)
{
清除通知=1;
橡皮擦通知=0;
repaint();
}
else if(e.getSource()==画笔)
{
橡皮擦通知=0;
清除通知=0;
}
else if(e.getSource()==保存)
{
FileDialog savedialog=new FileDialog(window,"保存图型到JPG格式",FileDialog.SAVE);
savedialog.setVisible(true);
if(savedialog.getFile()!=null)
{
try{
String fileName=savedialog.getFile();
FileOutputStream out=new FileOutputStream(fileName);
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param=encoder.getDefaultJPEGEncodeParam(image);
param.setQuality(1.0f,false);
encoder.setJPEGEncodeParam(param);
encoder.encode(image);
out.close();
}
catch(Exception EE)
{
}
}
}
else if(e.getSource()==获取屏幕)
{
Robot robot=null;
try{
robot=newRobot();
}
catch(Exception er)
{
}
Rectangle screenRect=null;
int width=getToolkit().getScreenSize().width;
int height=getToolkit().getScreenSize().height;
screenRect=new Rectangle(0,0,width,height);
window.setVisible(false);
this.window.setVisible(false);
image=robot.createScreenCapture(screenRect);
window.setVisible(true);
repaint();
}
else if(e.getSource()==调色板)
{
Color tempColor=JColorChooser.showDialog(window,"调色板",画笔颜色);
{
if(tempColor!=null)
{
画笔颜色=tempColor;
画笔.setForeground(画笔颜色);
}
}
}
else if(e.getSource()==绘制图形)
{
window.dispose();
this.window.dispose();
MakeJPEG canvas=new MakeJPEG();
}
}
public static void main(String args[])
{
new MakeJPEG();
}
}
用java实现对视频添加水印的代码或思路package com.jc.ts.services;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
*添加图片水印的服务类
* */
public class WaterMark {
/**
* @param sizeContext添加水印文字
* @param request 请求流对象
* @param request 响应流对象
* */
@SuppressWarnings("deprecation")
publicstaticvoidcreateMarkSize(String sizeContext,HttpServletRequest request,HttpServletResponse response){
try {
String path=request.getRealPath(request.getServletPath());
FileInputStream in=new FileInputStream(path);
Image src=https://www.04ip.com/post/ImageIO.read(in);
int w=src.getWidth(null);
int h=src.getHeight(null);
BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//构建画板
Graphics g=img.getGraphics();//得到画笔
g.drawImage(src,0,0,w,h,null);//把源图片写入画板
g.setColor(Color.red);
g.drawString(sizeContext,10,5);// 添加文字
g.dispose();//生成图片
JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());
e.encode(img);
response.getOutputStream().close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param localPath 添加水印LOGO路径
* @param request 请求流对象
* @param request 响应流对象
**/
@SuppressWarnings("deprecation")
publicstaticvoidcreateMarkLogo(String localPath,HttpServletRequest request,HttpServletResponse response){
try {
FileInputStream file=new FileInputStream(localPath);
Image fimg=ImageIO.read(file);
int fw=fimg.getWidth(null);
int fh=fimg.getHeight(null);
String path=request.getRealPath(request.getServletPath());
FileInputStream in=new FileInputStream(path);
Image src=https://www.04ip.com/post/ImageIO.read(in);
int w=src.getWidth(null);
int h=src.getHeight(null);
BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//构建画板
Graphics g=img.getGraphics();//得到画笔
g.drawImage(src,0,0,w,h,null);//把原图片写入画板
g.drawImage(fimg,w-20,h-15,fw,fh,null);//把水印图片写入画板
g.dispose();//生成图片
JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());
e.encode(img);
response.getOutputStream().close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* @param localPath 添加水印图片路径
* @param request 请求流对象
* @param request 响应流对象
* @param width水印图片的宽度
* @param height水印图片的长度
**/
@SuppressWarnings("deprecation")
publicstaticvoidcreateMarkLogo(String localPath,HttpServletRequest request,HttpServletResponse response,int width,int height){
try {
FileInputStream file=new FileInputStream(localPath);
Image fimg=ImageIO.read(file);
int fw=fimg.getWidth(null);
int fh=fimg.getHeight(null);
String path=request.getRealPath(request.getServletPath());
FileInputStream in=new FileInputStream(path);
Image src=https://www.04ip.com/post/ImageIO.read(in);
int w=src.getWidth(null);//w为你过滤图片的宽度
int h=src.getHeight(null);//h为你过滤图片的长度
BufferedImage img=new BufferedImage(w width,h height,BufferedImage.TYPE_INT_RGB);//构建画板(画板的宽度为两个图片之和)
Graphics g=img.getGraphics();//得到画笔
g.drawImage(src,0,0,w,h,null);//把原图片写入画板
g.drawImage(fimg,width,height,fw,fh,null);//把水印图片写入画板
g.dispose();//生成图片
JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());
e.encode(img);
response.getOutputStream().close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
注意第三个方法的注释地方g.drawImage(fimg,width,height,fw,fh,null);根据参数你在调调(放原图下面的)
过滤器调用
package com.jc.ts.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jc.ts.services.WaterMark;
public class WaterFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
//WaterMark.createMarkSize("南京ts", request, response);
//WaterMark.createMarkLogo("D:\\workspace\\mybook\\WebRoot\\images\\logo\\book.jpg", request, response);
WaterMark.createMarkLogo("D:\\workspace\\mybook\\WebRoot\\images\\logo\\book.jpg", request, response,20,30);
//注意路径为绝对路径且三个效果不能同时执行
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
web.xml配置(写在servlet上面)
filter
descriptionThis is the description of my J2EE component/description
display-nameThis is the display name of my J2EE component/display-name
filter-nameWaterFilter/filter-name
filter-classcom.jc.ts.filter.WaterFilter/filter-class
/filter
求一个用BufferedImage这个改变图片大小的JAVA代码!~!import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class ImageZipUtil {
/**
* 压缩图片文件br
* 先保存原文件jpegjava代码,再压缩、上传
*
* @param oldFile
*要进行压缩jpegjava代码的文件全路径
* @param width
*宽度
* @param height
*高度
* @param quality
*质量
* @param smallIcon
*小图片jpegjava代码的后缀
* @return 返回压缩后jpegjava代码的文件jpegjava代码的全路径
*/
public String zipImageFile(String oldFile, int width, int height,
float quality, String smallIcon) {
if (oldFile == null) {
return null;
}
String newImage = null;
try {
/** 对服务器上的临时文件进行处理 */
Image srcFile = ImageIO.read(new File(oldFile));
int w = srcFile.getWidth(null);
System.out.println(w);
System.out.println(smallIcon);
System.out.println(smallIcon);
int h = srcFile.getHeight(null);
System.out.println(h);
//width = w/4;
//height = h/4;
/** 宽,高设定 */
BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(srcFile, 0, 0, width, height, null);
String filePrex = oldFile.substring(0, oldFile.indexOf('.'));
/** 压缩后的文件名 */
newImage = filePrexsmallIcon
oldFile.substring(filePrex.length());
/** 压缩之后临时存放位置 */
FileOutputStream out = new FileOutputStream(newImage);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);
/** 压缩质量 */
jep.setQuality(quality, true);
encoder.encode(tag, jep);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return newImage;
}
/**
* 保存文件到服务器临时路径
*
* @param fileName
* @param is
* @return 文件全路径
*/
public String writeFile(String fileName, InputStream is) {
if (fileName == null || fileName.trim().length() == 0) {
return null;
}
try {
/** 首先保存到临时文件 */
FileOutputStream fos = new FileOutputStream(fileName);
byte[] readBytes = new byte[512];// 缓冲大小
int readed = 0;
while ((readed = is.read(readBytes))0) {
fos.write(readBytes, 0, readed);
}
fos.close();
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
public static void main(String[] args){
ImageZipUtil u = new ImageZipUtil();
u.zipImageFile("e:/SAM_0006.JPG", 128, 128, 1f, "x2");
}
}
为什么绘制jpeg图的jsp代码,在tomcat行,jrun不行报错:IllegalStateException %@ pageautoFlush="false" import="java.awt.*,java.io.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*"% % String ImageStr = ""; //request.getParameter("ID_Text"); out.clear(); response.setContentType("image/jpeg"); response.addHeader("pragma","NO-cache"); response.addHeader("Cache-Control","no-cache"); response.addDateHeader("Expries",0); int width=400, height=300; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); g.drawString(ImageStr,30,30); g.dispose(); OutputStream outStream = response.getOutputStream(); JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream); encoder.encode(image); outStream.close(); %
同事解答 。把%@ pageautoFlush="false" import="java.awt.*,java.io.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*"%% String就行 。
关于jpegjava代码和jpeg源码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读