private void juliaMap(int image_size) {

        double size = fractal.getSize();

        double size_2_x = size * 0.5;
        double size_2_y = (size * height_ratio) * 0.5;
        double temp_size_image_size_x = size / (TOx - FROMx);
        double temp_size_image_size_y = (size * height_ratio) / (TOx - FROMx);

        double temp_xcenter_size = fractal.getXCenter() - size_2_x;
        double temp_ycenter_size = fractal.getYCenter() + size_2_y;

        int pixel_percent = image_size * image_size / 100;

        double temp_y0 = temp_ycenter_size;
        double temp_x0 = temp_xcenter_size;

        for(int y = FROMy; y < TOy; y++, temp_y0 -= temp_size_image_size_y) {
            for(int x = FROMx, loc = y * image_size + x; x < TOx; x++, temp_x0 += temp_size_image_size_x, loc++) {

                image_iterations[loc] = fractal.calculateJulia(new Complex(temp_x0, temp_y0));
                rgbs[loc] = getColor(image_iterations[loc]);

                drawing_done++;

            }

            if(drawing_done / pixel_percent >= 1) {
                update(drawing_done);
                drawing_done = 0;
            }

            temp_x0 = temp_xcenter_size;

        }

        if(bump_map || fake_de || rainbow_palette) {
            try {
                post_processing_sync.await();
            }
            catch(InterruptedException ex) {

            }
            catch(BrokenBarrierException ex) {

            }

            applyPostProcessing(image_size);
        }

    }