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.image.PixelReader;
import javafx.scene.image.PixelWriter;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class DrawScaledImageTest extends Application{	
    final static int SCALE = 2;    

	@Override
	public void start(Stage primaryStage) throws Exception {
		String imagePath = DrawScaledImageTest.class.getResource("download.jpg").toString();
        Image image = new Image(imagePath, 182, 277, true, true);
        
        int width = (int)image.getWidth();
        int height = (int)image.getHeight();
        
        final Canvas canvas = new Canvas(SCALE * width, SCALE * height);
        final GraphicsContext gc = canvas.getGraphicsContext2D();
        //gc.drawImage(image, 0, 0, SCALE * width, SCALE * height); 
        
        
        PixelReader reader = image.getPixelReader(); 
        PixelWriter writer = gc.getPixelWriter(); 
        for (int y = 0; y < SCALE * height; ++y) { 
            for (int x = 0; x < SCALE * width; ++x) { 
                writer.setArgb(x, y, reader.getArgb(x / SCALE, y / SCALE)); 
            } 
        } 
        
        
        VBox root = new VBox(canvas); 
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
		primaryStage.setTitle(System.getProperty("java.runtime.version"));
        primaryStage.show();
		
	}
	public static void main(String[] args) {
        Application.launch(args);
 }

}
