Classe Imagem do JavaFX
A imagem é um arquivo que contém uma imagem. Java suporta imagens em vários formatos, incluindo .jpg, .png, .gif, e .bmp. Para incorporar imagens em seus aplicativos, você precisa usar duas classes: Imagem e ImageView. o Imagem classe representa uma imagem na memória, enquanto que o ImageView classe é um Nó que você pode adicionar a um grafo de cena para exibir uma Imagem na tela.
Ambas essas classes estão no pacote javafx.scene.image, então você precisa adicionar a seguinte declaração aos seus programas:
importar javafx.scene.image. * -
Para carregar uma imagem a partir de uma fonte externa, como um arquivo de disco ou um local de web, utilizar o Imagem classe. Essa classe tem seis construtores, detalhados nesta tabela.
Construtor | Descrição |
---|---|
Imagem (InputStream in) | Cria uma imagem através da leitura do inputstream especificado. |
Imagem (InputStream in, largura dupla, doubleheight, boolean preserveRatio, boolean liso) | Cria uma imagem através da leitura do fluxo de entrada especificado andresizes lo de acordo com a largura e altura que você especificar. preserveRatio indica se o aspectRatio da imagem original deve ser preservada, e suave indica se suavização da imagem shouldbe aplicada. |
Imagem (url String) | Cria uma imagem através da leitura a partir do URL especificado. |
Imagem (String url, booleanbackgroundLoading) | Cria uma imagem através da leitura a partir do URL especificado. Se backgroundLoading é verdade, a imagem é carregada no fundo (ou seja, em um segmento separado). |
Imagem (url String, largura dupla, doubleheight, boolean preserveRatio, boolean liso) | Cria uma imagem através da leitura a partir do URL especificado. Thisconstructor especifica a largura e a altura da imageand resultante indica se a relação entre a imagem original shouldbe preservada e se alisamento imagem aspecto deve ser aplicada. |
Imagem (url String, largura dupla, doubleheight, boolean preserveRatio, boolean suave, booleanbackgroundLoading) | Cria uma imagem através da leitura do caminho web especificado andresizes lo de acordo com a largura e altura que você especificar. preserveRatio indica se o aspectRatio da imagem original deve ser preservada, e suave indica se suavização da imagem shouldbe aplicada. E se backgroundLoading É verdade, a imagem é carregada no fundo (ou seja, em um segmento separado). |
A maneira mais fácil de carregar uma imagem é fazê-lo directamente a partir de um arquivo em seu computador local, especificando um caminho de arquivo na Imagem construtor. A seqüência de caracteres caminho do arquivo deve ser precedido pela string protocol Arquivo:. Por exemplo, o seguinte construtor cria um objeto de imagem a partir de um arquivo chamado pic001.jpg na pasta C: Pictures:
img imagem = new imagem ( "file: C: Pictures pic001.jpg") -
Você também pode especificar um local web usando o http: protocolo, como neste exemplo:
img imagem = new imagem ( "https://domain.com/pic001.jpg") -
Observe no exemplo da web que você não tem que dobrar as barras porque endereços HTTP usar barras, e não barras invertidas.
Em muitos casos, você quer carregar uma imagem de um objeto File. Para fazer isso, use o Arquivo o objetivo de touri método para obter o caminho correto do arquivo. Nota:touri retorna um objeto do tipo URI- você deve, em seguida, chamar getString para converter o URI para uma string:
Arquivo f = new File ( "C: Pictures pic001.jpg") - img Imagem = new Imagem (f.toURI toString () ().) -
Aqui, um arquivo é criado a partir do caminho C: Pictures pic001.jpg. Em seguida, uma imagem é criada a partir do arquivo.
Quando você cria uma Imagem objeto, você pode especificar que a imagem deve ser redimensionada, fornecendo os parâmetros de largura e altura. Você também precisará fornecer dois boolean argumentos.
O primeiro especifica se você deseja JavaFX para preservar a relação de aspecto da imagem (isto é, a relação entre largura e altura). Se você especificar verdade, a imagem pode conter áreas em branco acima e abaixo ou à esquerda e à direita, conforme necessário para preservar a relação de aspecto da imagem. Se você especificar falso, a imagem pode ser distorcida.
O segundo boolean argumento especifica se você deseja JavaFX para aplicar um algoritmo de suavização para melhorar a clareza da imagem. O processo de suavização faz com que a imagem pareça melhor, mas leva tempo.
Finalmente, você pode especificar um terceiro opcional boolean argumento de que indica que você deseja que a imagem a ser carregada no fundo. Isso faz com que o processo de carregamento da imagem a ser cindida para um segmento separado para que o seu segmento principal aplicativo pode continuar sem esperar que a imagem a ser carregada.