diff --git a/app/src/main/java/com/example/bondoman/ui/twibbon/TwibbonFragment.kt b/app/src/main/java/com/example/bondoman/ui/twibbon/TwibbonFragment.kt
index 4d2e39e84bd1c78088f4405d0e168c0221fcb686..c52485de8a0681e6d091385997746b8cedfa3563 100644
--- a/app/src/main/java/com/example/bondoman/ui/twibbon/TwibbonFragment.kt
+++ b/app/src/main/java/com/example/bondoman/ui/twibbon/TwibbonFragment.kt
@@ -18,6 +18,7 @@ import java.util.concurrent.Executors
 import android.content.Context
 import android.content.Intent
 import android.graphics.BitmapFactory
+import android.net.Uri
 import android.widget.Toast
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.camera.lifecycle.ProcessCameraProvider
@@ -52,6 +53,8 @@ class TwibbonFragment : Fragment() {
 
     private var previewFrozen: Boolean = false
 
+    private val PICK_IMAGE_REQUEST = 1
+
     private val activityResultLauncher =
         registerForActivityResult(
             ActivityResultContracts.RequestMultiplePermissions())
@@ -94,6 +97,7 @@ class TwibbonFragment : Fragment() {
         }
 
         viewBinding.twibbonCaptureButton.setOnClickListener { takePhoto() }
+        viewBinding.changeTwibbonButton.setOnClickListener { pickTwibbonFromGallery() }
 
         cameraExecutor = Executors.newSingleThreadExecutor()
     }
@@ -152,6 +156,21 @@ class TwibbonFragment : Fragment() {
         startCamera()
     }
 
+    private fun pickTwibbonFromGallery() {
+        val intent = Intent(Intent.ACTION_PICK)
+        intent.type = "image/png"
+        startActivityForResult(intent, PICK_IMAGE_REQUEST)
+    }
+
+    @Deprecated("Deprecated in Java")
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        super.onActivityResult(requestCode, resultCode, data)
+        if (requestCode == PICK_IMAGE_REQUEST && resultCode == Activity.RESULT_OK && data != null) {
+            val imageUri: Uri? = data.data
+            viewBinding.twibbonOverlay.setImageURI(imageUri)
+        }
+    }
+
 
     override fun onDestroy() {
         super.onDestroy()
diff --git a/app/src/main/res/layout/fragment_twibbon.xml b/app/src/main/res/layout/fragment_twibbon.xml
index 94ad224df90a1aa08d77013916b01f921b0f40f4..ea8bc086dd0ac0738863ea8022af79c80cf8c163 100644
--- a/app/src/main/res/layout/fragment_twibbon.xml
+++ b/app/src/main/res/layout/fragment_twibbon.xml
@@ -26,7 +26,7 @@
             android:layout_marginTop="43dp" />
 
         <ImageView
-            android:id="@+id/imageView3"
+            android:id="@+id/twibbonOverlay"
             android:layout_width="wrap_content"
             android:layout_height="369dp"
             android:src="@drawable/bondoman_logo"
@@ -37,14 +37,27 @@
     <Button
         android:id="@+id/twibbonCaptureButton"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="16dp"
+        android:layout_height="60dp"
         android:fontFamily="sans-serif"
-        android:text="capture"
+        android:text="Capture"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.498"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView2" />
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.743" />
+
+    <ImageView
+        android:id="@+id/changeTwibbonButton"
+        android:layout_width="60dp"
+        android:layout_height="60dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.15"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.743"
+        app:srcCompat="@android:drawable/ic_menu_gallery" />
 
     <TextView
         android:id="@+id/textView2"