Harika22 commited on
Commit
cfc5d4a
·
verified ·
1 Parent(s): 9135c60

Update pages/7_Unstructured_data.py

Browse files
Files changed (1) hide show
  1. pages/7_Unstructured_data.py +34 -34
pages/7_Unstructured_data.py CHANGED
@@ -814,38 +814,38 @@ import streamlit as st
814
  from PIL import Image
815
  import numpy as np
816
 
817
- def upload():
818
- st.title('Image Transformation Tool')
819
- uploaded_file = st.file_uploader("Upload an image", type=['jpg', 'png', 'jpeg'])
820
 
821
- if uploaded_file is not None:
822
- img = Image.open(uploaded_file)
823
- st.image(img, caption='Uploaded Image', use_container_width=True)
824
-
825
- option = st.selectbox('Choose a transformation:', ['None', 'Scale', 'Translate', 'Rotate', 'Shear', 'Slice'])
826
-
827
- if option == 'Scale':
828
- scale_factor = st.slider('Select Scale Factor',0.1, 3.0, 1.0, key='scale_factor')
829
- img = img.resize((int(img.width * scale_factor), int(img.height * scale_factor)))
830
- elif option == 'Translate':
831
- x_offset = st.slider('X Offset', -100, 100, 0, key='x_offset')
832
- y_offset = st.slider('Y Offset', -100, 100, 0, key='y_offset')
833
- translated_img = Image.new('RGBA', (img.width + abs(x_offset), img.height + abs(y_offset)), (255, 255, 255, 0))
834
- translated_img.paste(img, (max(x_offset, 0), max(y_offset, 0)))
835
- img = translated_img
836
- elif option == 'Rotate':
837
- angle = st.slider('Select Rotation Angle', 0, 360, 0, key='rotation_angle')
838
- img = img.rotate(angle, expand=True)
839
- elif option == 'Shear':
840
- shear_factor = st.slider('Select Shear Factor', -1.0, 1.0, 0.0, key='shear_factor')
841
- matrix = (1, shear_factor, 0, shear_factor, 1, 0)
842
- img = img.transform(img.size, Image.AFFINE, matrix)
843
- elif option == 'Slice':
844
- left = st.slider('Left', 0, img.width, 0, key='slice_left')
845
- upper = st.slider('Upper', 0, img.height, 0, key='slice_upper')
846
- right = st.slider('Right', left, img.width, img.width, key='slice_right')
847
- lower = st.slider('Lower', upper, img.height, img.height, key='slice_lower')
848
- img = img.crop((left, upper, right, lower))
849
-
850
- st.image(img, caption=f'{option} Image', use_container_width=True)
851
- st.download_button('Download Transformed Image', img.tobytes(), file_name='transformed_image.png', mime='image/png')
 
814
  from PIL import Image
815
  import numpy as np
816
 
817
+ def upload():
818
+ st.title('Image Transformation Tool')
819
+ uploaded_file = st.file_uploader("Upload an image", type=['jpg', 'png', 'jpeg'])
820
 
821
+ if uploaded_file is not None:
822
+ img = Image.open(uploaded_file)
823
+ st.image(img, caption='Uploaded Image', use_container_width=True)
824
+
825
+ option = st.selectbox('Choose a transformation:', ['None', 'Scale', 'Translate', 'Rotate', 'Shear', 'Slice'])
826
+
827
+ if option == 'Scale':
828
+ scale_factor = st.slider('Select Scale Factor',0.1, 3.0, 1.0, key='scale_factor')
829
+ img = img.resize((int(img.width * scale_factor), int(img.height * scale_factor)))
830
+ elif option == 'Translate':
831
+ x_offset = st.slider('X Offset', -100, 100, 0, key='x_offset')
832
+ y_offset = st.slider('Y Offset', -100, 100, 0, key='y_offset')
833
+ translated_img = Image.new('RGBA', (img.width + abs(x_offset), img.height + abs(y_offset)), (255, 255, 255, 0))
834
+ translated_img.paste(img, (max(x_offset, 0), max(y_offset, 0)))
835
+ img = translated_img
836
+ elif option == 'Rotate':
837
+ angle = st.slider('Select Rotation Angle', 0, 360, 0, key='rotation_angle')
838
+ img = img.rotate(angle, expand=True)
839
+ elif option == 'Shear':
840
+ shear_factor = st.slider('Select Shear Factor', -1.0, 1.0, 0.0, key='shear_factor')
841
+ matrix = (1, shear_factor, 0, shear_factor, 1, 0)
842
+ img = img.transform(img.size, Image.AFFINE, matrix)
843
+ elif option == 'Slice':
844
+ left = st.slider('Left', 0, img.width, 0, key='slice_left')
845
+ upper = st.slider('Upper', 0, img.height, 0, key='slice_upper')
846
+ right = st.slider('Right', left, img.width, img.width, key='slice_right')
847
+ lower = st.slider('Lower', upper, img.height, img.height, key='slice_lower')
848
+ img = img.crop((left, upper, right, lower))
849
+
850
+ st.image(img, caption=f'{option} Image', use_container_width=True)
851
+ st.download_button('Download Transformed Image', img.tobytes(), file_name='transformed_image.png', mime='image/png')