A. java中在窗體的創建一個面板中加入一個gif動態圖
你是說 JPanel 嗎?兩種方法:
添加 JLabel,給 JLabel 添加 ImageIcon,然後放置 JLabel 到 JPanel 上就行了:
JPanel pnl = new JPanel();
......
JLabel lblImage = new JLabel(new ImageIcon("你的文件名")); //創建一個帶圖片的 JLabel
lblImage.setBounds(0, 0, pnl.getWidth(), pnl.getHeight()); //設置 圖片的橫坐標、縱坐標、寬、高
pnl.add(lblImage); //放置這個 JLabel 到你的 JPanel 上面
還有一種方法是重寫 JPanel 的 paint() 方法:
class YourPanel extends JPanel {
private Image img = Toolkit.getDefaultToolkit().createImage("你的文件名"); //用 Toolkit 的 createImage 方法來創建一個 Image 對象
@Override public void paint (Graphics g) {
super.paint(g);
g.drawImage(img, 0, 0, getWidth(), getHeight()); //繪制圖片,第一個參數是 Image 對象,第二個參數是 橫坐標,第三個是 縱坐標,第四個是 寬,第五個是 高
}
}
以上你隱式重寫也可以:
JPanel pnl = new JPanel() {
@Override public void paint (Graphics g) {
...... //但是要注意這樣如果你把 Image 聲明成了局部變數或者參數形式,你需要聲明成 final
}
}
B. 怎麼修改gif圖片尺寸
都知道微信現在已經是一個很普及的聊天交友工具了,但是凡事都有兩面性,有好的一面就有不好的一面。都知道微信發送視頻文件是有一定大小限制的,超過了限制大小就沒辦法進行發送,不僅是視頻,就連gif圖片也是一樣,如果超過限定大小就沒辦法發送。那有沒有什麼辦法能夠給微信好友發送超過限定大小的視頻或gif圖片呢?
聲明本文系本人根據真實經歷原創,未經許可,請勿轉載。
C. 如何用Java實現圖形的放大和縮小
java實現圖形的放大和縮小,其實就是在畫圖時,改變圖片的長和寬。以下代碼參考一下:
importjava.awt.Graphics;
importjava.awt.MouseInfo;
importjava.awt.Point;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjava.io.File;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFileChooser;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.filechooser.FileNameExtensionFilter;
,ActionListener{
intx=0;
inty=0;
File[]selectedFiles=null;
intfileIndex=0;
intwidth=200;
intheight=200;
publicApp(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400,300);
setResizable(false);
getContentPane().setLayout(null);
JPanelpanel=newImagePanel();
panel.setBounds(12,40,370,218);
getContentPane().add(panel);
addMouseListener(this);
JButtonbtnBrowse=newJButton("Browse");
btnBrowse.addActionListener(this);
btnBrowse.setBounds(12,9,91,21);
getContentPane().add(btnBrowse);
setVisible(true);
}
publicstaticvoidmain(String[]args){
newApp();
}
publicvoidactionPerformed(ActionEvente){
JFileChooserchooser=newJFileChooser();
chooser.setMultiSelectionEnabled(true);
FileNameExtensionFilterfilter=newFileNameExtensionFilter(
"JPG&GIFImages","jpg","gif");
//設置文件類型
chooser.setFileFilter(filter);
//打開選擇器面板
intreturnVal=chooser.showOpenDialog(this);
if(returnVal==JFileChooser.APPROVE_OPTION){
selectedFiles=chooser.getSelectedFiles();
repaint();
}
}
publicvoidmouseClicked(MouseEvente){
}
publicvoidmouseEntered(MouseEvente){
}
publicvoidmouseExited(MouseEvente){
}
publicvoidmousePressed(MouseEvente){
Pointpoint=MouseInfo.getPointerInfo().getLocation();
x=point.x;
y=point.y;
}
publicvoidmouseReleased(MouseEvente){
Pointpoint=MouseInfo.getPointerInfo().getLocation();
intthisX=point.x;
intthisY=point.y;
System.out.println("thisX="+thisX+""+"thisY="+thisY);
if((y-thisY<20&&y-thisY>0)
||(y-thisY<0&&y-thisY>-20)){
//Y在20范圍內移動認為是水平移動
if(x<thisX){
//right
if(selectedFiles!=null
&&fileIndex<selectedFiles.length-1){
fileIndex++;
}
}else{
//left
if(selectedFiles!=null&&fileIndex>0){
fileIndex--;
}
}
}else{
if(x<thisX){
//右下
width+=20;
height+=20;
}else{
//左上
width-=20;
height-=20;
}
}
repaint();
}
classImagePanelextendsJPanel{
publicvoidpaint(Graphicsg){
super.paint(g);
if(selectedFiles!=null){
ImageIconicon=newImageIcon(selectedFiles[fileIndex]
.getPath());
g.drawImage(icon.getImage(),0,0,width,height,this);
}
}
}
}
D. java如何獲取資料庫里的圖片高寬
讀成Image對象,用image.getWidth()和image.getHeight()得到寬高
如果頻繁使用,就應該在表中增設寬高欄位了。
E. 調整GIF圖片的寬度和高度,達到壓縮GIF圖片的效果
GIF圖片的話可以用GIF中文網,除了能夠調整寬高進行壓縮,還能夠調整壓縮等級,抽取圖片的幀數來縮小文件,也不用下載軟體,在線就可以完成操作,簡單說一下操作的步驟。
打開GIF中文網的GIF壓縮功能,點擊上傳圖片按鈕,上傳需要進行壓縮的圖片。
F. 在java中如何利用事件實現圖片大小的改變
應該是滿足了吧
import java.awt.*;
import java.applet.*;
import java.net.URL;
import java.awt.image.ImageProcer;
public class AppletTest extends Applet {
private Image i;
String urlString = "http://www..com/img/logo.gif"; // 圖片地址
Button b1 = new Button("zoom In");
Button b2 = new Button("zoom Out");
int a = 80;
int b = 80;
public void init() {
try {
URL url = new URL(urlString);
i = this.createImage((ImageProcer) url.getContent());
add(b1);
add(b2);
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean action(Event evt, Object arg) {
if(evt.target.equals(b1))
zoomIn();
else if(evt.target.equals(b2))
zoomOut();
// Let the base class handle it:
else
return super.action(evt, arg);
return true; // We've handled it here
}
public void zoomIn(){
a += 10;
b += 10;
repaint();
}
public void zoomOut(){
a -= 10;
b -= 10;
repaint();
}
public void paint(Graphics g) {
g.drawImage(i, 20, 40, a, b, this);
}
}
G. java怎樣設置圖片適應容器大小
//你可以試試這個程序 和你說的差不多
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
//SplitPaneDemo itself is not a visible component.
public class SplitPaneDemo extends JPanel
implements ListSelectionListener {
private JLabel picture;
private JList list;
private JSplitPane splitPane;
private String[] imageNames = { "Bird", "Cat", "Dog", "Rabbit", "Pig", "keWaveRed",
"kathyCosmo", "lainesTongue", "left", "middle", "right", "stickerface"};
public SplitPaneDemo() {
//Create the list of images and put it in a scroll pane.
list = new JList(imageNames);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSelectedIndex(0);
list.addListSelectionListener(this);
JScrollPane listScrollPane = new JScrollPane(list);
picture = new JLabel();
picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
picture.setHorizontalAlignment(JLabel.CENTER);
JScrollPane pictureScrollPane = new JScrollPane(picture);
//Create a split pane with the two scroll panes in it.
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
listScrollPane, pictureScrollPane);
splitPane.setOneTouchExpandable(true);
splitPane.setDividerLocation(150);
//Provide minimum sizes for the two SplitPaneDemo in the split pane.
Dimension minimumSize = new Dimension(100, 50);
listScrollPane.setMinimumSize(minimumSize);
pictureScrollPane.setMinimumSize(minimumSize);
//Provide a preferred size for the split pane.
splitPane.setPreferredSize(new Dimension(400, 200));
updateLabel(imageNames[list.getSelectedIndex()]);
}
//Listens to the list
public void valueChanged(ListSelectionEvent e) {
JList list = (JList)e.getSource();
updateLabel(imageNames[list.getSelectedIndex()]);
}
//Renders the selected image
protected void updateLabel (String name) {
ImageIcon icon = createImageIcon("images/" + name + ".gif");
picture.setIcon(icon);
if (icon != null) {
picture.setText(null);
} else {
picture.setText("Image not found");
}
}
//Used by SplitPaneDemo2
public JList getImageList() {
return list;
}
public JSplitPane getSplitPane() {
return splitPane;
}
/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = SplitPaneDemo.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("SplitPaneDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SplitPaneDemo splitPaneDemo = new SplitPaneDemo();
frame.getContentPane().add(splitPaneDemo.getSplitPane());
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schele a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
H. java實現gif圖片壓縮成型的jar包或者java可以調用的插件
需要用到一個java-image-scaling-0.8.5.jar包。這種需要設定寬高(我是按照原來比例走的。寬是按照兩個A4的寬度走)。
優點:簡單,格式支持還行。
缺點:寬高需要設定。
I. java 怎麼把gif圖按比例縮放
自己在paint事件中,縮放
J. java 中讀取圖片寬度和高度總是為-1,怎麼辦
圖片的寬度和高度一般來說如果你不設定的話,它顯示的是原始大小,一般來說需要自己設定的,如果疑問的話將你的例子寫上來一些,看看。
至於讀取動畫GIF圖片,跟普通圖片一樣,只需要一個"URL"路徑就可以了。