/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* JModImage.java
*
* Created on 24-giu-2010, 20.31.52
*/
package jmodimage.graphics;
import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
import java.awt.Color;
import java.awt.Image;
import java.awt.Point;
import java.awt.image.FilteredImageSource;
import java.awt.image.ReplicateScaleFilter;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JColorChooser;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.filechooser.FileFilter;
import jmodimage.Immagine;
/**
*
* @author Paolo
*/
public class JModImage
extends javax.
swing.
JFrame {
private Immagine img;
/** Creates new form JModImage */
public JModImage() {
try {
UIManager.
setLookAndFeel(new NimbusLookAndFeel
());
}
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
imgLabel
= new javax.
swing.
JLabel();
apriButton
= new javax.
swing.
JButton();
scrittaLabel
= new javax.
swing.
JLabel();
salvaButton
= new javax.
swing.
JButton();
xSpinner = new javax.swing.JSpinner();
xLabel
= new javax.
swing.
JLabel();
yLabel
= new javax.
swing.
JLabel();
ySpinner = new javax.swing.JSpinner();
dimensioniLabel
= new javax.
swing.
JLabel();
setTitle("JImageModifier - by Paolo Ricciuti (C)");
setResizable(false);
imgLabel.
setBorder(javax.
swing.
BorderFactory.
createTitledBorder("Immagine"));
apriButton.setText("Apri");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
apriButtonActionPerformed(evt);
}
});
scrittaLabel.setText("Scritta:");
salvaButton.setText("Salva");
salvaButton.setEnabled(false);
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
salvaButtonActionPerformed(evt);
}
});
xLabel.setText("X:");
yLabel.setText("Y:");
dimensioniLabel.setText("Dimensioni:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.
addComponent(imgLabel, javax.
swing.
GroupLayout.
DEFAULT_SIZE, 363,
Short.
MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(apriButton, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(scrittaLabel))
.addComponent(dimensioniLabel, javax.swing.GroupLayout.Alignment.LEADING))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(scrittaField, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(xLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(xSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(yLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.
addComponent(salvaButton, javax.
swing.
GroupLayout.
DEFAULT_SIZE, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE)
.
addComponent(ySpinner, javax.
swing.
GroupLayout.
DEFAULT_SIZE, 70,
Short.
MAX_VALUE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(imgLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(apriButton)
.addComponent(scrittaLabel)
.addComponent(scrittaField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(salvaButton))
.
addGap(18, 18,
Short.
MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(dimensioniLabel)
.addComponent(ySpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(yLabel)
.addComponent(xSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(xLabel))
.addGap(21, 21, 21))
);
java.
awt.
Dimension screenSize
= java.
awt.
Toolkit.
getDefaultToolkit().
getScreenSize();
setBounds((screenSize.width-399)/2, (screenSize.height-366)/2, 399, 366);
}// </editor-fold>//GEN-END:initComponents
private void apriButtonActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_apriButtonActionPerformed
apri.removeChoosableFileFilter(apri.getAcceptAllFileFilter());
@Override
public boolean accept
(File f
) {
String path
= f.
getName().
toLowerCase();
boolean accept = path.endsWith(".jpg");
accept = accept || path.endsWith(".gif");
accept = accept || path.endsWith(".png");
accept = accept || path.endsWith(".bmp");
if (f.isDirectory() || accept) {
return true;
}
return false;
}
@Override
public String getDescription
() {
return "File immagine (jpg, png, gif, bmp)";
}
});
int retval = apri.showOpenDialog(this);
try {
this.img = new Immagine(apri.getSelectedFile());
Image imm
= this.
img.
getImg();
this.dimensioniLabel.setText("Dimensioni: " + imm.getWidth(this) + " x " + imm.getHeight(this));
this.setIcon();
this.salvaButton.setEnabled(true);
JOptionPane.
showMessageDialog(this,
"Errore nell'apertura del file");
}
}
}//GEN-LAST:event_apriButtonActionPerformed
private void setIcon() {
Image imgToLabel
= this.
img.
getImg();
if (imgToLabel.getWidth(this) > 300 || imgToLabel.getHeight(this) > 200) {
int larghezza = (200 * imgToLabel.getWidth(this)) / imgToLabel.getHeight(this);
imgToLabel = createImage(fis);
}
this.
imgLabel.
setIcon(new ImageIcon(imgToLabel
));
}
private void salvaButtonActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_salvaButtonActionPerformed
if (this.img != null) {
salva.removeChoosableFileFilter(salva.getAcceptAllFileFilter());
@Override
public boolean accept
(File f
) {
String path
= f.
getName().
toLowerCase();
boolean accept = path.endsWith(".jpg");
accept = accept || path.endsWith(".gif");
accept = accept || path.endsWith(".png");
accept = accept || path.endsWith(".bmp");
if (f.isDirectory() || accept) {
return true;
}
return false;
}
@Override
public String getDescription
() {
return "File immagine (jpg, png, gif, bmp)";
}
});
int retval = salva.showSaveDialog(this);
String scritta
= this.
scrittaField.
getText();
this.img.scriviImmagine(punto, scritta, color);
File select
= salva.
getSelectedFile();
String path
= select.
getName();
boolean accept = path.endsWith(".jpg");
accept = accept || path.endsWith(".gif");
accept = accept || path.endsWith(".png");
accept = accept || path.endsWith(".bmp");
if (!accept) {
select
= new File(select.
getAbsolutePath() + ".jpg");
}
try {
this.img.salvaImmagine(select);
this.setIcon();
JOptionPane.
showMessageDialog(this,
"Salvataggio completato");
JOptionPane.
showMessageDialog(this,
"Errore nel salvataggio file");
}
}
}
}//GEN-LAST:event_salvaButtonActionPerformed
/**
* @param args the command line arguments
*/
public static void main
(String args
[]) {
public void run() {
new JModImage().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.
swing.
JButton apriButton
;
private javax.
swing.
JLabel dimensioniLabel
;
private javax.
swing.
JLabel imgLabel
;
private javax.
swing.
JButton salvaButton
;
private javax.
swing.
JLabel scrittaLabel
;
private javax.
swing.
JLabel xLabel
;
private javax.swing.JSpinner xSpinner;
private javax.
swing.
JLabel yLabel
;
private javax.swing.JSpinner ySpinner;
// End of variables declaration//GEN-END:variables
}