[code]
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
- A classe abstrata Image é a superclasse de todas as classes que representam imagens gráficas.
- A imagem deve ser obtida em uma plataforma de modo específico.
-
@author Diego Batista Pereira da Silva
-
@since 27_08_2008
*/
public abstract class UniImage extends Image{
/**
* O (pseudo-)método construtor determina que ações devem ser executadas quando da criação de um objeto.
* Em Java, o construtor é definido como um método cujo nome deve ser o mesmo nome da classe e sem indicação do tipo de retorno – nem mesmo void.
* O construtor é unicamente invocado no momento da criação do objeto através do operador new.
/
public UniImage() {
super();
// TODO Auto-generated constructor stub
}
/*
* @author Diego Batista Pereira da Silva
* @param image
* @return Retorna a largura da Image
* Determina o tamanho da imagem.
* Se a largura ainda não é conhecido, este método retorna -1 e as especificadas ImageObserver objeto é notificado posteriormente.
*/
public int getLargura(ImageObserver observer){
return getWidth(observer);
}
/**
* @author Diego Batista Pereira da Silva
* @param image
* @return
* Determina a altura da imagem.
* Se a altura ainda não é conhecido, este método retorna -1 e as especificadas ImageObserver objeto é notificado posteriormente.
*/
public int getAltura(ImageObserver observer){
return getHeight(observer);
}
/**
* @author Diego Batista Pereira da Silva
* @return
* Recebe o objeto que produz os pixels para a imagem.
* Este método é chamado pela imagem de filtragem e de classes através de métodos que executar imagem conversão e escamação.
*/
public ImageProducer getFiltragem(){
return getSource();
}
/**
* @author Diego Batista Pereira da Silva
* @return
* Cria um contexto para desenho gráfico para fora da tela uma imagem.
* Este método só pode ser chamado para fora da tela imagens.
*/
public Graphics getContexto(){
return getGraphics();
}
/**
* @author Diego Batista Pereira da Silva
* @param nome
* @param observer
* @return
*Obtém uma propriedade desta imagem por nome.
*Propriedade individual nomes são definidos pelos diferentes formatos imagem.
*Se uma propriedade não é definida para uma determinada imagem, este método retorna UndefinedProperty o objeto.
*Se as propriedades para esta imagem não são ainda conhecidos, este método retorna nulo, e os ImageObserver objeto é notificado posteriormente.
*O nome da propriedade "comentário" deve ser usado para armazenar um comentário opcionais que podem ser apresentados ao pedido como uma descrição da imagem, sua origem, ou o seu autor.
*/
public Object getPropriedade(String nome, ImageObserver observer){
return getProperty(nome, observer);
}
/**
* @author Diego Batista Pereira da Silva
* @param largura
* @param altura
* @param dica
* @return
* Cria um escalados versão desta imagem.
* Uma nova imagem objeto é devolvido o que tornará a imagem na largura e altura especificados pelo padrão.
* A nova imagem objeto pode ser carregado asynchronously mesmo se a fonte original imagem já foi completamente carregado.
* Se largura ou altura é um número negativo é substituído então um valor de manter a taxa de aspecto da imagem original dimensões.
* Se ambos largura e altura são negativas e, em seguida, a imagem original dimensões são usadas.
*/
public Image novasEscalas(int largura,int altura, int dica){
return super.getScaledInstance(largura, altura, dica);
}
/**
* @author Diego Batista Pereira da Silva
* Rubores todos os recursos sejam utilizados por esta imagem objeto.
* Isto inclui qualquer pixel que está a ser dados em cache para renderização para a tela, bem como qualquer sistema de recursos que estão sendo usadas para armazenar dados ou pixels para a imagem.
* A imagem está a redefinir a um estado semelhante ao primeiro, quando foi criada a fim de que se for novamente prestados, os dados da imagem terá de ser recriada ou trazida de novo a partir de sua fonte.
* Este método sempre deixa a imagem em um estado tal que ela pode ser reconstruído.
* Isso significa que o método aplica-se apenas ao cache secundário ou outras representações de imagens como aquelas que tenham sido produzidos a partir de uma ImageProducer (ler um arquivo, por exemplo).
* Ele não faz nada para fora da tela imagens que têm apenas uma cópia dos seus dados.
*/
public void recursos(){
super.flush();
}
/**
* @author Diego Batista Pereira da Silva
* @param gc - Um valor nulo para esse parâmetro irá resultar na obtenção das capacidades para a imagem padrão GraphicsConfiguration.
* @return - um objeto que contém as capacidades deste Imagem em GraphicsConfiguration especificado.
* Retorna um objeto que pode ser ImageCapabilities perguntou como para as capacidades da imagem sobre a GraphicsConfiguration especificado.
* Isto permite que programadores para saber mais informações sobre o tempo de execução específica Image objeto que eles próprios criaram.
* Por exemplo, o usuário poderá criar uma BufferedImage mas o sistema pode não ter memória de vídeo à esquerda para criar uma imagem do que sobre a dimensão dada GraphicsConfiguration, de forma muito embora o objeto pode ser acceleratable, em geral, é que não tem essa capacidade em GraphicsConfiguration .
*/
public ImageCapabilities getCapacidade(GraphicsConfiguration gc){
return super.getCapabilities(gc);
}
/**
* @author Diego Batista Pereira da Silva
* @param prioridade - um valor entre 0 e 1, inclusiva, onde valores mais altos indicam maior importância para a aceleração.
* Um valor 0 significa que esta imagem nunca deveria ser acelerado.
* Outros valores são utilizados apenas para determinar a aceleração prioridade em relação aos de outras imagens.
* Define uma dica para esta imagem de como é importante aceleração.
* Esta prioridade dica é utilizado para comparar com as prioridades de outros objetos gráficos para determinar o modo de utilização dos recursos escassos, como a aceleração de memória de vídeo.
* Quando e se for possível para acelerar esta imagem, se houver recursos disponíveis não são suficientes para proporcionar suficiente, mas que a aceleração pode ser libertado por alguns outros aceleração de-imagem de menor prioridade e, em seguida, outras imagens que podem ser de-acelerou em deferência a este.
* As imagens que têm o mesmo ter prioridade sobre os recursos de um primeiro a chegar, primeiro a ser servido ".
*/
public void setPrioridade(float prioridade){
super.setAccelerationPriority(prioridade);
}
/**
* @author Diego Batista Pereira da Silva
* @return - valor entre 0 e 1, que representa o valor atual da prioridade
* Retorna o valor atual da aceleração prioridade dica.
*/
public float getPrioridade(){
return super.getAccelerationPriority();
}
/*
* Campo Síntese
*/
protected float acelerarPrioridade(){
return accelerationPriority;
}
}[/code]
Esta é a classe mais não da para usa
UniImage displayImage = new UniImage(Toolkit.getDefaultToolkit().getImage("Image/joker.jpg"));
Alguem sabe pq?