Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions PyReconstruct/modules/backend/view/section_layer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from PySide6.QtGui import QPainter, QPixmap
from PySide6.QtGui import QPainter, QPixmap, QImage
from PySide6.QtCore import Qt

from .image_layer import ImageLayer
Expand Down Expand Up @@ -32,7 +32,8 @@ def generateView(
generate_traces=True,
hide_traces=False,
show_all_traces=False,
hide_image=False
hide_image=False,
invert_image=False
):
"""Generate pixmap view for a section.

Expand All @@ -57,6 +58,12 @@ def generateView(
elif generate_image:
self.image_layer = self.generateImageLayer(pixmap_dim, window)

# Invert base color if requested
if invert_image:
temp_img = self.image_layer.toImage()
temp_img.invertPixels(QImage.InvertRgb)
self.image_layer = QPixmap.fromImage(temp_img)

## Hide all traces if requested
if hide_traces:
return self.image_layer.copy()
Expand Down
1 change: 1 addition & 0 deletions PyReconstruct/modules/datatypes/default_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ def get_username() -> str:
"screenshot_res": 300,
"show_ztraces": True, # MFO
"fill_opacity": 0.2, # MFO
"invert_colors": False, # MFO
"find_zoom": 95.0, # MFO
"show_flags": "unresolved", # MFO
"display_closest": True, # MFO
Expand Down
14 changes: 13 additions & 1 deletion PyReconstruct/modules/gui/main/field_widget_1_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ def createField(self, series : Series):
## Create zarr view if applicable
self.createZarrLayer()

# Reset invert color option to false
self.series.setOption("invert_colors", False)

## Reset b section and layer
self.b_section = None
self.b_section_layer = None
Expand Down Expand Up @@ -258,6 +261,9 @@ def generateView(self, generate_image=True, generate_traces=True, update=True) -
assert(abs(x_scaling - y_scaling) < 1e-6)

self.scaling = x_scaling

# check if image should be inverted
invert_image = self.series.getOption("invert_colors")

## Generate section view
view = self.section_layer.generateView(
Expand All @@ -267,7 +273,8 @@ def generateView(self, generate_image=True, generate_traces=True, update=True) -
generate_traces=generate_traces,
hide_traces=self.hide_trace_layer,
show_all_traces=self.show_all_traces,
hide_image=self.hide_image
hide_image=self.hide_image,
invert_image=invert_image
)

# blend b section if requested
Expand Down Expand Up @@ -312,6 +319,11 @@ def generateView(self, generate_image=True, generate_traces=True, update=True) -
if update:
self.update()

def toggleInvertColors(self):
current = self.series.getOption("invert_colors")
self.series.setOption("invert_colors", not current)
self.generateView()

def clearStates(self) -> None:
"""Create/clear the states for each section."""
self.series_states = SeriesStates(self.series)
Expand Down
3 changes: 2 additions & 1 deletion PyReconstruct/modules/gui/main/menubar.py
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,9 @@ def return_view_menu(self):
("viewmag_act", "View magnification...", "", self.field.setViewMagnification),
("findview_act", "Set zoom when finding contours...", "", self.setFindZoom),
None,
("toggleztraces_act", "Toggle show Z-traces", "", self.toggleZtraces),
("toggleztraces_act", "Toggle show Z-traces", "", self.toggleZtraces),
None,
("invertcolors_act", "Invert Colors", "checkbox", self.field.toggleInvertColors),
{
"attr_name": "palettemenu",
"text": "Palette",
Expand Down