quarta-feira, 15 de agosto de 2018

JavaFX - desenhando partes de imagens com canvas

Para os amantes de java e que
se rendem aos encantos do JavaFX,
que é a maior API do momento para
criar janelas para desktop, mobile
e outros, apresento este interessante
programa, no qual estamos usando os
poderosos recursos do canvas para
desenhar partes de uma imagem e
apresentá-las em pontos estratégicos
com largura e altura previamente escolhido

 por nós mesmos, acompanhe na imagem:

Veja abaixo uma imagem do programa em execução:





Veja abaixo o código do programa: 
 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;

public class PROJETO extends Application {
     Canvas canvas = new Canvas ( 600, 310 );
     GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     Pane root = new Pane ( );
     Scene scene = new Scene ( root );
     // /////////////////////////////////////////////////////////////////////////
     public void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 50, 155 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 80, 155 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 50, 170 );
     }
     // /////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) throws FileNotFoundException {
         // Carregando a imagem
         Image image = new Image( new FileInputStream ("H:\\eclipse - luna java\\"
                   + "PROJETOS\\PROJETO\\src\\Foto\\números.png" ) );
         stage.setTitle ( "JAVAFX - DESENHANDO PARTES DE IMAGENS COM CANVAS" );
         ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                   FontPosture.ITALIC, 12 ) );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "Imagem original", 265, 65 );  
         // Imagem original
         ctx.drawImage ( image, 210, 80, 200, 200 );
         /*
         Os quatro primeiros parâmetros são:
         Coluna e linha, largura e altura de onde
         pretende-se iniciar o desenhao.   
         ============================================  
         Os quatro últimos parâmetros são:
         Os dois primeiros:
         Coluna e linha aonde se deseja aplicar o desenho da imagem
         Os dois últimos:
         Largura e altura da imagem a ser desenhada.
          */ 
         ctx.fillText ( "Desenho do número 1", 48, 65 );
         //Parâmetros para Desenhar o número 1
         ctx.drawImage ( image, 0, 0, 65, 65, 95, 80, 32, 32 );
         ctx.fillText ( "Desenho do número 4", 438, 65 );
         //Parâmetros para Desenhar o número 4
         ctx.drawImage ( image, 195, 0, 65, 65, 490, 80, 32, 32 );
         ctx.fillText ( "Desenho do número 9", 48, 225 );
         //Parâmetros para Desenhar o número 9
         ctx.drawImage ( image, 0, 130, 65, 65, 95, 240, 32, 32 );
         ctx.fillText ( "Desenho do símbolo %", 438, 225 );
         //Parâmetros para Desenhar o símbolo %
         ctx.drawImage ( image, 195, 130, 65, 65, 490, 240, 32, 32 );  
         //Usando fonte em italic
         ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                   FontPosture.ITALIC, 15 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - DESENHANDO PARTES DE IMAGENS COM CANVAS", 90,35 );
         //Criando uma moldura retangular em canvas
         ctx.setStroke ( Color.BLUE );
         ctx.setLineWidth ( 10.0 );
         ctx.strokeRoundRect ( 10, 10, 580, 290, 10, 10 );
         Informe ( );
         root.getChildren ( ).add ( canvas );
         stage.setScene ( scene );
         stage.show ( );
     }
     // /////////////////////////////////////////////////////////////////////////
     public static void main ( String [ ] args ) {
         Application.launch ( args );
     }
}
 


Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.