Skip to content

GUI

gui

The main GUI implementation.

Classes:

MainWindow

MainWindow(filmstocks)

Bases: QMainWindow

The main window of Raw2Film.

Attributes:

  • adx_scale

    What density does 100% output of the negative LUT respond to. Matching values

  • blue_light

    Intensity of the blue light during printing.

  • color_masking

    How effective the orange color mask of the film is. Value of 1 perfectly

  • exp_comp

    Compensate for exposure. Default assumes middle gray to be at the default from

  • exp_wb

    Adjust the white balance of the image. Default assumes white to be at 6500

  • green_light

    Intensity of the green light during printing.

  • image_selector

    Select which image to use for the preview. Should be encoded in the target

  • input_colourspace_selector

    What color space is the reference image in?

  • link_lights

    Connect the sliders of all printer lights together.

  • lut_size

    The size of the LUT table.

  • mode

    What part of the pipeline to simulate. Using negative + print in conjunction

  • negative_selector

    Select the camera film stock that is emulated.

  • noise_button

    Open the grain overlay export dialog.

  • output_gamma

    Gamma function to apply for encoding.

  • output_gamut

    In what color space to encode the output.

  • print_selector

    What print material to simulate.

  • projector_kelvin

    The color of the projection lamp or the viewing lamp for paper prints.

  • red_light

    Intensity of the red light during printing.

  • save_lut_button

    Export the LUT.

  • shadow_comp

    Lift or lower dark areas. For 1 or -1 it acts like an OOTF or inverse OOTF

  • tint

    Adjust the tint along the green to red/purple axis.

  • white_comp

    When viewing print film brightness will be increased to clip at exactly 1.0.

adx_scale instance-attribute

adx_scale = WideComboBox(self)

What density does 100% output of the negative LUT respond to. Matching values have to be used for print and grain LUTs. No effect when using the full mode.

Density 2 matches ADX10 and should be used for Cineon like workflows. Density 8 matches ADX16. When using density 2 there is risk of clipping for some negative film stocks.

blue_light instance-attribute

blue_light = Slider()

Intensity of the blue light during printing.

color_masking instance-attribute

color_masking = Slider()

How effective the orange color mask of the film is. Value of 1 perfectly compensates for color layer cross contamination. An increased value leads to higher saturation. There is no documented data on this, so you can play around with this to your liking.

For film without a color mask like slide film this can be used to simulate other inter-layer effects. Should probably set lower, but should be experimented with.

exp_comp instance-attribute

exp_comp = Slider()

Compensate for exposure. Default assumes middle gray to be at the default from the color space spec.

exp_wb instance-attribute

exp_wb = SliderLog()

Adjust the white balance of the image. Default assumes white to be at 6500 kelvin.

green_light instance-attribute

green_light = Slider()

Intensity of the green light during printing.

image_selector instance-attribute

image_selector = FileSelector()

Select which image to use for the preview. Should be encoded in the target color space of the LUT.

input_colourspace_selector instance-attribute

input_colourspace_selector = WideComboBox()

What color space is the reference image in?

link_lights = QCheckBox()

Connect the sliders of all printer lights together.

lut_size instance-attribute

lut_size = Slider()

The size of the LUT table.

mode instance-attribute

mode = WideComboBox(self)

What part of the pipeline to simulate. Using negative + print in conjunction should give the same result as using full. Grain expects as input the output of negative and is to be used as a multiplicative intensity scale for a grain overlay.

negative_selector instance-attribute

negative_selector = FilmStockSelector(
    negative_info,
    self,
    self,
    sort_keys=sort_keys_negative,
    group_keys=group_keys_negative,
    list_keys=list_keys_negative,
    sidebar_keys=sidebar_keys_negative,
    default_group="Manufacturer",
    image_key="image",
)

Select the camera film stock that is emulated.

noise_button instance-attribute

noise_button = AnimatedButton('Export Grain')

Open the grain overlay export dialog.

output_gamma instance-attribute

output_gamma = WideComboBox(self)

Gamma function to apply for encoding.

output_gamut instance-attribute

output_gamut = WideComboBox(self)

In what color space to encode the output.

print_selector instance-attribute

print_selector = FilmStockSelector(
    print_info,
    self,
    self,
    sort_keys=sort_keys_print,
    group_keys=group_keys_print,
    list_keys=list_keys_print,
    sidebar_keys=sidebar_keys_print,
    default_group="Manufacturer",
    image_key="image",
)

What print material to simulate. For slide film it should normally be set to None. If None is selected for negative film a digital scan with a simple mathematical inversion is simulated.

projector_kelvin instance-attribute

projector_kelvin = SliderLog()

The color of the projection lamp or the viewing lamp for paper prints.

red_light instance-attribute

red_light = Slider()

Intensity of the red light during printing.

save_lut_button instance-attribute

save_lut_button = AnimatedButton('Save LUT')

Export the LUT.

shadow_comp instance-attribute

shadow_comp = Slider()

Lift or lower dark areas. For 1 or -1 it acts like an OOTF or inverse OOTF respectively.

tint instance-attribute

tint = Slider()

Adjust the tint along the green to red/purple axis.

white_comp instance-attribute

white_comp = QCheckBox()

When viewing print film brightness will be increased to clip at exactly 1.0. When viewing slide film white balancing is applied, so that a gray patch will actually produce the color temperature specified by the projector kelvin.