導航:首頁 > 編程語言 > javajpg生成

javajpg生成

發布時間:2022-09-05 13:13:34

java生成jpg圖片 並且實現文字和圖片混排

response.setHeader("Cache-Control","no-cache");
String str="";
String sum="";
for(int i=0;i<4;i++){
Random random=new Random();
int j=Math.round(random.nextFloat()*35);
char x=str.charAt(j);
sum+=x+"";
}
request.getSession().setAttribute("Code",sum);
BufferedImage bufferedImage=new BufferedImage(50,20,BufferedImage.TYPE_3BYTE_BGR);
Graphics2D graphics2D=(Graphics2D)bufferedImage.getGraphics();
graphics2D.setColor(Color.blue);
graphics2D.fill3DRect(0,0,50,20,false);
graphics2D.setColor(Color.YELLOW);
graphics2D.drawString(sum,10,12);
response.setContentType("image/jpeg");
ServletOutputStream output;
try {
output = response.getOutputStream();
JPEGImageEncoder encoder= JPEGCodec.createJPEGEncoder(output);
encoder.encode(bufferedImage);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

㈡ 如何用java轉換圖像格式為jpg

import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;

public class ImageFormat {
public static void main(String[] args) {
File file = new File("c:\\test.jpg");
changFormat(file, "png", new File("c:\\test.png"));// 轉為png
changFormat(file, "bmp", new File("c:\\test.bmp"));// 轉為bmp
//changFormat(file, "jpeg", new File("c:\\test.jpg"));// 轉為jpg
changFormat(file, "gif", new File("c:\\test.gif"));// 轉為gif
}
//第一個參數 原圖的File對象 第二個參數 目標格式 第三個參數 輸出圖像的File對象
public static void changFormat(File srcFile, String format, File formatFile) {
try {
BufferedImage srcImg = ImageIO.read(srcFile);// 讀取原圖
ImageIO.write(srcImg, format, formatFile);// 用指定格式輸出到指定文件
} catch (IOException e) {
e.printStackTrace();
}
}
}

㈢ java怎麼在控制台輸出一張jpg的圖片

輸出圖片的base64編碼

//imgFile是圖片的路徑
publicstaticvoidgetImageStr(StringimgFile){
InputStreaminputStream=null;
byte[]data=null;
try{
inputStream=newFileInputStream(imgFile);
data=newbyte[inputStream.available()];
inputStream.read(data);
inputStream.close();
}catch(IOExceptione){
e.printStackTrace();
}//加密
BASE64Encoderencoder=newBASE64Encoder();
System.out.println(encoder.encode(data));
}

㈣ java中lib.jpg文件時自動生成還是自己編譯的啊

導包嗎?如果是的話就是自動生成的。我們只需要導入驅動就可以了,應為驅動是第三方提供的,不是程序員寫的。我們只需要導入相應的驅動就可以了。用這種方式可以提高程序的靈活形,你如果切換不同的第三方提供的程序就只需要導入相應的包,而不是針對每種第三方軟體都寫一個對應的代碼。

㈤ java 如何將多張JPG圖片合成視頻文件,比如:avi格式 或 mpg格式.

之前有做過圖片合成視頻的功能,大概代碼就是這樣,你可以看一下
/**
* 圖片合成視頻
* @param mp4SavePath 視頻保存路徑
* @param imageDir 圖片地址
* @param rate 這個可以理解成視頻每秒播放圖片的數量
*/
public static boolean jpgToMp4(String mp4SavePath, String imageDir, double rate) {
FFmpegFrameRecorder recorder = null;
boolean flag = true;
try {
File[] files = FileUtils.fileSort(imageDir);
int [] widthArray = new int[files.length];
int [] heightArray = new int[files.length];

/**
* 獲取合成視頻圖片的最大寬高,避免圖片比例不一致最終合成效果差
*/
for (int i = 0; i < files.length; i++) {
BufferedImage bufferedImage = ImageIO.read(files[i]);
widthArray[i] = bufferedImage.getWidth();
heightArray[i] = bufferedImage.getHeight();
}

/**
* 這個方法主要是防止圖片比例達不到視頻合成比例的要求,如果達不到下面條件視頻則會無法播放
* 圖片寬:必須要被32整除
* 圖片高:必須要被2整除
*/
int [] maxWH = getImgMaxWH(widthArray,heightArray);
recorder = new FFmpegFrameRecorder(mp4SavePath,maxWH[0],maxWH[1]);
recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
/**
* 視頻質量:目前測試出來的是25-30最清晰,視頻質量范圍好像是0-40,具體可以自己慢慢測
*/
recorder.setVideoQuality(25);
recorder.setFormat("mp4");
recorder.setFrameRate(rate > 0 ? rate : 1);
recorder.setPixelFormat(0);
recorder.start();

OpenCVFrameConverter.ToIplImage conveter = new OpenCVFrameConverter.ToIplImage();

/**
* 合成視頻
*/
for(int i = 0; i < files.length; i++ ){
opencv_core.IplImage image = cvLoadImage(files[i].getPath());
recorder.record(conveter.convert(image));
opencv_core.cvReleaseImage(image);
}
logger.info("合成成功");
} catch(Exception e) {
e.printStackTrace();
flag = false;
logger.error("合成失敗");
} finally {
try {
if (recorder != null){
recorder.stop();
recorder.release();
}
} catch (FrameRecorder.Exception e) {
e.printStackTrace();
}
}
return flag;
}

㈥ 如何利用Java生成JPG縮略圖

public static boolean scale(String imagepath,String newpath){
// 返回一個 BufferedImage,作為使用從當前已注冊 ImageReader 中自動選擇的 ImageReader 解碼所提供 File 的結果

BufferedImage image=null;
try {
image = ImageIO.read(new File(imagepath));
} catch (IOException e) {
System.out.println("讀取圖片文件出錯!"+e.getMessage());
return false;
}

// Image Itemp = image.getScaledInstance(300, 300, image.SCALE_SMOOTH);
double Ratio = 0.0;

if ((image.getHeight() > 300) ||(image.getWidth() > 300)) {
if (image.getHeight() > image.getWidth())
//圖片要縮放的比例
Ratio = 300.0 / image.getHeight();
else
Ratio = 300.0 / image.getWidth();
}
// 根據仿射轉換和插值類型構造一個 AffineTransformOp。
AffineTransformOp op = new AffineTransformOp(AffineTransform
.getScaleInstance(Ratio, Ratio), null);
// 轉換源 BufferedImage 並將結果存儲在目標 BufferedImage 中。
image = op.filter(image,null);
//image.getScaledInstance(300,300,image.SCALE_SMOOTH);

FileOutputStream out=null;
try {
out = new FileOutputStream(newpath);
ImageIO.write((BufferedImage)image,"bmp",out);
out.close();
} catch (Exception e) {
System.out.println("寫圖片文件出錯!!"+e.getMessage());
return false;
}
return true;
}

㈦ 用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;
Graphics2D ggg ;
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!=-1&&y!=-1&&橡皮擦通知==0&&清除通知==0)
{
g.setColor(畫筆顏色);
n=v.size();
for(int i=0;i<n-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=new Robot();
}
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數字怎麼生成jpg圖片

BufferedImage bi = new BufferedImage(35, 50, BufferedImage.TYPE_INT_RGB);Graphics g = bi.getGraphics();g.setColor(Color.WHITE);g.setFont(new Font("宋體", Font.BOLD, 60));g.drawString("2", 0, 50);ImageIO.write(bi, "jpg", new File("D:/1.jpg"));

㈨ 請問java中如何利用代碼直接打開JPG圖片 生成後的.CLASS文件怎麼直接運行

用IO流讀圖片文件,然後再轉成圖片相關類的對象,就可以在你的程序里使用了,比如設置程序的背景圖片。

win + r -->cmd -->javac D:\HelloWorld.class(class文件的路徑,前提是你裝了JDK)

閱讀全文

與javajpg生成相關的資料

熱點內容
體重小本app怎麼樣 瀏覽:777
編程語言需求 瀏覽:935
當兵體重怎麼個演算法 瀏覽:169
加密的電腦文件帶出去怎麼打開 瀏覽:849
死循環會在編譯的時候出錯嗎 瀏覽:986
c51單片機特殊寄存器的原理 瀏覽:578
閃耀永恆特利加密鑰 瀏覽:761
如何誇程序員 瀏覽:781
天津期貨python招聘 瀏覽:265
單片機機器語言寫的程序 瀏覽:553
韓國直播軟體app叫什麼名 瀏覽:920
軍營訓練不聽教官的命令 瀏覽:263
v開頭的音樂播放器是什麼APP 瀏覽:122
單片機是怎麼做出來的 瀏覽:319
博圖怎麼作為opc伺服器 瀏覽:103
編譯做題軟體 瀏覽:298
橋梁檢測pdf 瀏覽:689
化解壓力的一種方法 瀏覽:684
路由器和DSN伺服器有什麼區別 瀏覽:551
android伸縮控制項 瀏覽:861