This commit is contained in:
kat 2024-01-09 02:15:41 +01:00
parent 0bab6a7dd6
commit b6dc97e6c6
4 changed files with 20 additions and 3 deletions

View File

@ -2,7 +2,6 @@
import asyncio import asyncio
from blurme.templates import template from blurme.templates import template
from blurme.state import State from blurme.state import State
import reflex as rx import reflex as rx
@ -10,6 +9,7 @@ color = "rgb(107,99,246)"
@template(route="/settings", title="Zdjęcie", image = "/image-icon.png") @template(route="/settings", title="Zdjęcie", image = "/image-icon.png")
def settings() -> rx.Component: def settings() -> rx.Component:
return rx.vstack( return rx.vstack(
rx.heading("BlurMe", font_size="3em", margin_bottom="25px", background_image="linear-gradient(271.68deg, #7566fe 0.75%, #f96caf 88.52%)", background_clip="text", padding = "10px"), rx.heading("BlurMe", font_size="3em", margin_bottom="25px", background_image="linear-gradient(271.68deg, #7566fe 0.75%, #f96caf 88.52%)", background_clip="text", padding = "10px"),
rx.text("Dodaj zdjęcie, które chcesz zanonimizować", font_size="1.2em"), rx.text("Dodaj zdjęcie, które chcesz zanonimizować", font_size="1.2em"),
@ -42,6 +42,7 @@ def settings() -> rx.Component:
on_click=lambda img_name=img: State.delete_image(img_name), color="rgba(255, 75, 42,255)", on_click=lambda img_name=img: State.delete_image(img_name), color="rgba(255, 75, 42,255)",
width = "125px"), width = "125px"),
rx.button("Anonimizuj", rx.button("Anonimizuj",
on_click=lambda img_name=img: State.image_anonymization(img_name),
width = "125px"), width = "125px"),
rx.button("Pobierz", rx.button("Pobierz",
on_click=lambda img_name=img: State.download_image(img_name), on_click=lambda img_name=img: State.download_image(img_name),

View File

@ -1,9 +1,13 @@
"""Base state for the app.""" """Base state for the app."""
import reflex as rx import reflex as rx
import os
from blurme import styles from blurme import styles
import asyncio import asyncio
from graphics.image_modification import blur_boxes_on_image
from ml.element_detection import BoundBox, detect
class State(rx.State): class State(rx.State):
"""The app state.""" """The app state."""
@ -43,6 +47,18 @@ class State(rx.State):
print(self.img) print(self.img)
return rx.download(url=f'/{img_name}', filename=img_name) return rx.download(url=f'/{img_name}', filename=img_name)
async def image_anonymization(self, img_name: str):
if img_name in self.img:
image_path = rx.get_asset_path(img_name)
new_img_name = "anonim-" + img_name
new_image_path = rx.get_asset_path(new_img_name)
blur_boxes_on_image(image_path, detect(image_path), new_image_path)
upload_file = rx.UploadFile(file=open(new_image_path, 'rb'), filename=new_img_name)
self.delete_image(img_name)
await self.handle_upload([upload_file])
self.img=self.img

View File

@ -4,7 +4,7 @@ from typing import List
from PIL import Image, ImageDraw, ImageFont, ImageFilter from PIL import Image, ImageDraw, ImageFont, ImageFilter
from PIL.Image import composite from PIL.Image import composite
from BlurMe.ml.element_detection import BoundBox from ml.element_detection import BoundBox
DIR_PATH = os.path.dirname(os.path.realpath(__file__)) DIR_PATH = os.path.dirname(os.path.realpath(__file__))

View File

@ -1,7 +1,7 @@
import unittest import unittest
from unittest.mock import Mock, patch from unittest.mock import Mock, patch
from element_detection import detect, BoundBox from element_detection import detect, BoundBox
from BlurMe.graphics.image_modification import show_image_with_boxes from graphics.image_modification import show_image_with_boxes
class TestYourModule(unittest.TestCase): class TestYourModule(unittest.TestCase):