losalamos.figures#
{Short module description (1-3 sentences)} todo docstring
Classes
- class losalamos.figures.Figure(name='MyFig', alias='Fig')[source]#
Bases:
DataSet- static scale_image(file_input, file_output, scale_factor, dpi=300)[source]#
Scale an image by a numerical factor while maintaining its original aspect ratio.
- Parameters:
file_input (str) – Path to the source image file.
file_output (str) – Path where the scaled image will be saved.
scale_factor (float) – Multiplier for the image dimensions (e.g., 0.5 for half size).
dpi (int) – Resolution in dots per inch for the output file metadata. Default value =
300
- Returns:
No value is returned.
- Return type:
None
Note
The resizing process utilizes the
Image.Resampling.LANCZOSfilter to ensure high-quality downsampling or upsampling. The output is saved with a fixed quality compression of95.
- static make_thumbnail(file_input, file_output, size=(512, 512), figure_ratio=None, mode='crop', dpi=300, quality=85, background=(255, 255, 255))[source]#
Generate a lightweight JPEG thumbnail from an input image with resizing options.
- Parameters:
file_input (str) – Path to the source image file.
file_output (str) – Path where the generated thumbnail will be saved.
size (tuple) – Target dimensions for the output image. Default value =
(512, 512)figure_ratio (tuple) – [optional] Aspect ratio used to calculate target height from width.
mode (str) – Resizing strategy, either
cropto fill dimensions orfitto pad. Default value =cropdpi (int) – Resolution in dots per inch for the output file. Default value =
300quality (int) – JPEG compression quality from 1 to 100. Default value =
85background (tuple) – RGB color used for padding when mode is
fit. Default value =(255, 255, 255)
- Returns:
No value is returned.
- Return type:
None
Note
The function automatically converts non-compatible image modes to
RGBto ensure JPEG compatibility. Iffigure_ratiois provided as(width, height), it overrides the height specified in thesizeparameter.
- static image_to_jpeg(file_input, file_output, quality=95, dpi=300)[source]#
Convert an image file to JPEG format with specified quality and resolution.
- Parameters:
file_input (str) – Path to the input image file.
file_output (str) – Path where the output JPEG will be saved.
quality (int) – Compression quality from 1 to 100. Default value =
95dpi (int) – Resolution in dots per inch. Default value =
300
- Returns:
None
- Return type:
NoneType
- class losalamos.figures.FigureSVG(name='MySVG', alias='SVG')[source]#
Bases:
Figure- load_data(file_data)[source]#
Load and parse SVG XML data from a file path into the object instance.
- Parameters:
file_data (str) – The file system path pointing to the source SVG data.
- Returns:
No value is returned.
- Return type:
None
Important
This method converts the input path to an absolute path and utilizes an
etree.XMLParserwithhuge_treeenabled to handle large datasets. It populates thetreeanddataattributes before triggering an internalupdatecall.
- save()[source]#
Serializes the current XML tree and writes it to the local file system.
- Returns:
Always returns
None- Return type:
None
- export(folder, filename, data_suffix=None)[source]#
Saves the current SVG data to a specific directory with an optional filename suffix.
- Parameters:
folder (str) – The destination directory path
filename (str) – The base name of the output file
data_suffix (str) – [optional] An additional string appended to the filename
- Returns:
Always returns
None- Return type:
None
Note
This method temporarily overrides the internal
file_datapath to execute the save operation before restoring the original path.
- hide_layer(label='frames')[source]#
Modifies the style attribute of a specific layer to make it invisible.
- Parameters:
label (str) – The Inkscape label of the layer to hide. Default value =
frames- Returns:
Always returns
None- Return type:
None
- hide_layers(labels)[source]#
Hide multiple layers based on a list of provided labels.
- Parameters:
labels (list) – A list of layer labels to be hidden.
- Returns:
None
- Return type:
NoneType
- show_layer(label='frames')[source]#
Modifies the style attribute of a specific layer to make it visible.
- Parameters:
label (str) – The Inkscape label of the layer to display. Default value =
frames- Returns:
Always returns
None- Return type:
None
- show_layers(labels, inclusive=True)[source]#
Show specified layers and optionally hide all others.
- Parameters:
labels (list) – A list of layer labels to be made visible.
inclusive (bool) – Determines if other layers stay visible or are hidden. Default value =
True
- Returns:
None
- Return type:
NoneType
Note
If
inclusiveis set toTrue, the specified layers are made visible without affecting others. IfFalse, the method performs a “show only” operation by hiding any layer not present in thelabelslist.
- get_layers()[source]#
Return a dictionary of top-level Inkscape layers indexed by their label.
- Returns:
Dictionary mapping layer labels to lxml Elements
- Return type:
dict[str, etree.Element]
Note
Only <g> elements that are direct children of the root <svg> element and have inkscape:groupmode=”layer” are considered.
- set_page_opacity(opacity=1.0)[source]#
Set the Inkscape page background opacity.
- Parameters:
opacity (float) – Opacity value in range [0.0, 1.0] (1=opaque)
- set_page_color(color='#ffffff')[source]#
Set the Inkscape page background color.
- Parameters:
color (str) – Hex color string (e.g. ‘#ffffff’)
- set_element_color(element, fill=None, stroke=None)[source]#
Set fill and/or stroke color of an SVG element.
- Parameters:
element – lxml SVG element
fill – Fill color (e.g. ‘#00ff00’) or None
stroke – Stroke color or None
- get_layer_elements(label, drawable_only=True)[source]#
Return drawable SVG elements from a layer, indexed by element ID.
- Parameters:
label – Inkscape layer label
drawable_only – Exclude non-drawable tags (image, defs, etc.)
- Returns:
dict[str, dict]
- to_image(file_output=None, dpi=300, crop_id=None, hide_layers=None, show_layers=None, show_inclusive=True, to_jpeg=False, remove_png=True)[source]#
Export the current drawing as an image file, optionally adjusting layers and format.
- Parameters:
file_output (str or
pathlib.Path) – [optional] The destination path for the exported image. If None, it defaults to the source file name.dpi (int) – Dots per inch for the export resolution. Default value =
300crop_id (str) – [optional] The specific object ID to crop instead of the whole page.
hide_layers (list) – [optional] List of layer labels to set to hidden before export.
show_layers (list) – [optional] List of layer labels to set to visible before export.
show_inclusive (bool) – Whether to show layers inclusively when using
show_layers. Default value =Trueto_jpeg (bool) – Convert the final output from PNG to JPEG format. Default value =
Falseremove_png (bool) – Delete the intermediate PNG file if
to_jpegis True. Default value =True
- Returns:
The path to the generated image file.
- Return type:
pathlib.Path
Warning
This method requires
inkscapeto be installed and available in the system PATH.Note
The method modifies layer visibility before export based on the provided labels. It saves the current state of the drawing to disk before calling Inkscape via a subprocess to perform the rendering.