清除未使用圖片+手寫查詢+字數查詢
@ -58,7 +58,7 @@ namespace DualScreenDemo
|
||||
|
||||
|
||||
string fileName = (i + 2).ToString("00");
|
||||
string filePath = Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-" + fileName + ".jpg");
|
||||
string filePath = Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-" + fileName + ".png");
|
||||
favoriteNumberButton[i].BackgroundImage = Image.FromFile(filePath);
|
||||
favoriteNumberButton[i].BackgroundImageLayout = ImageLayout.Stretch;
|
||||
favoriteNumberButton[i].FlatStyle = FlatStyle.Flat;
|
||||
@ -90,7 +90,7 @@ namespace DualScreenDemo
|
||||
Name = "enterFavoriteButton"
|
||||
};
|
||||
ResizeAndPositionButton(enterFavoriteButton, 842, 652, 70, 65);
|
||||
enterFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-12.jpg"));
|
||||
enterFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-12.png"));
|
||||
enterFavoriteButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
enterFavoriteButton.FlatStyle = FlatStyle.Flat;
|
||||
enterFavoriteButton.FlatAppearance.BorderSize = 0;
|
||||
@ -105,7 +105,7 @@ namespace DualScreenDemo
|
||||
Name = "newFavoriteButton"
|
||||
};
|
||||
ResizeAndPositionButton(newFavoriteButton, 921, 652, 70, 65);
|
||||
newFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-13.jpg"));
|
||||
newFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-13.png"));
|
||||
newFavoriteButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
newFavoriteButton.FlatStyle = FlatStyle.Flat;
|
||||
newFavoriteButton.FlatAppearance.BorderSize = 0;
|
||||
@ -120,7 +120,7 @@ namespace DualScreenDemo
|
||||
Name = "refillFavoriteButton"
|
||||
};
|
||||
ResizeAndPositionButton(refillFavoriteButton, 999, 652, 70, 65);
|
||||
refillFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-14.jpg"));
|
||||
refillFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-14.png"));
|
||||
refillFavoriteButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
refillFavoriteButton.FlatStyle = FlatStyle.Flat;
|
||||
refillFavoriteButton.FlatAppearance.BorderSize = 0;
|
||||
@ -135,7 +135,7 @@ namespace DualScreenDemo
|
||||
Name = "closeFavoriteButton"
|
||||
};
|
||||
ResizeAndPositionButton(closeFavoriteButton, 1078, 652, 70, 65);
|
||||
closeFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-15.jpg"));
|
||||
closeFavoriteButton.BackgroundImage = Image.FromFile(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛-15.png"));
|
||||
closeFavoriteButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
closeFavoriteButton.FlatStyle = FlatStyle.Flat;
|
||||
closeFavoriteButton.FlatAppearance.BorderSize = 0;
|
||||
@ -320,7 +320,7 @@ namespace DualScreenDemo
|
||||
if (!FavoritePictureBox.Visible)
|
||||
{
|
||||
|
||||
ShowImageOnFavoritePictureBox(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛_工作區域.jpg"));
|
||||
ShowImageOnFavoritePictureBox(Path.Combine(Application.StartupPath, @"themes\superstar\我的最愛\我的最愛_工作區域.png"));
|
||||
SetFavoritePictureBoxAndButtonsVisibility(true);
|
||||
}
|
||||
else
|
||||
@ -352,7 +352,7 @@ namespace DualScreenDemo
|
||||
FavoritePictureBox.Image = image;
|
||||
|
||||
// 設定 PictureBox 的大小與位置(依你的需要調整)
|
||||
ResizeAndPositionPictureBox(FavoritePictureBox, 773, 380, (int)(image.Width * 0.8f) , (int)(image.Height * 0.8f));
|
||||
ResizeAndPositionPictureBox(FavoritePictureBox, 773, 380, image.Width, image.Height);
|
||||
|
||||
FavoritePictureBox.Visible = true;
|
||||
}
|
||||
|
@ -133,3 +133,15 @@
|
||||
於 DualScreenDemo.PrimaryForm.InitializeFormAndControls()
|
||||
於 DualScreenDemo.PrimaryForm..ctor()
|
||||
於 DualScreenDemo.Program.Main()
|
||||
[2025/5/12 上午 11:32:58] System.IO.FileNotFoundException: E:\jasonchen\superstar\bin\themes\superstar\我的最愛\我的最愛-02.png
|
||||
於 System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
|
||||
於 DualScreenDemo.PrimaryForm.InitializeButtonsForFavoritePictureBox()
|
||||
於 DualScreenDemo.PrimaryForm.InitializeFormAndControls()
|
||||
於 DualScreenDemo.PrimaryForm..ctor()
|
||||
於 DualScreenDemo.Program.Main()
|
||||
[2025/5/12 上午 11:35:17] System.IO.FileNotFoundException: E:\jasonchen\superstar\bin\themes\superstar\我的最愛\我的最愛-12.png
|
||||
於 System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
|
||||
於 DualScreenDemo.PrimaryForm.InitializeButtonsForFavoritePictureBox()
|
||||
於 DualScreenDemo.PrimaryForm.InitializeFormAndControls()
|
||||
於 DualScreenDemo.PrimaryForm..ctor()
|
||||
於 DualScreenDemo.Program.Main()
|
||||
|
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 208 KiB |
Before Width: | Height: | Size: 12 KiB |
@ -1,33 +0,0 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
# Load the image
|
||||
image_path = 'toggle_light.jpg'
|
||||
image = cv2.imread(image_path)
|
||||
|
||||
# Convert to grayscale
|
||||
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
|
||||
|
||||
# Set threshold for non-white color
|
||||
# Note: Adjust the threshold values based on your image's specific conditions
|
||||
upper_threshold = 220 # Anything below this will be considered as non-white
|
||||
|
||||
# Create a mask for non-white regions (below the threshold value)
|
||||
mask = cv2.inRange(gray, 0, upper_threshold)
|
||||
|
||||
# Find contours from the mask
|
||||
contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
||||
|
||||
# Draw contours or compute bounding boxes
|
||||
for contour in contours:
|
||||
# Calculate the bounding rectangle for each non-white region
|
||||
x, y, w, h = cv2.boundingRect(contour)
|
||||
print(f"Bounding box coordinates: X: {x}, Y: {y}, Width: {w}, Height: {h}")
|
||||
|
||||
# Optional: Draw the bounding box on the original image
|
||||
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
|
||||
|
||||
# Display the results
|
||||
cv2.imshow('Image with Bounding Boxes', image)
|
||||
cv2.waitKey(0)
|
||||
cv2.destroyAllWindows()
|
@ -1,80 +0,0 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
# 初始化坐标点
|
||||
roi_pts = []
|
||||
drawing = False # True if the mouse is pressed down
|
||||
|
||||
# 鼠标回调函数
|
||||
def select_roi(event, x, y, flags, param):
|
||||
global roi_pts, drawing
|
||||
|
||||
# 当按下左键是记录起始位置坐标
|
||||
if event == cv2.EVENT_LBUTTONDOWN:
|
||||
drawing = True
|
||||
roi_pts = [(x, y)]
|
||||
|
||||
# 当鼠标左键按下并移动是绘制图形
|
||||
elif event == cv2.EVENT_MOUSEMOVE:
|
||||
if drawing == True:
|
||||
temp_image = param.copy()
|
||||
cv2.rectangle(temp_image, roi_pts[0], (x, y), (0, 255, 0), 2)
|
||||
cv2.imshow('image', temp_image)
|
||||
|
||||
# 当松开鼠标左键停止绘画
|
||||
elif event == cv2.EVENT_LBUTTONUP:
|
||||
drawing = False
|
||||
roi_pts.append((x, y))
|
||||
cv2.rectangle(param, roi_pts[0], (x, y), (0, 255, 0), 2)
|
||||
cv2.imshow('image', param)
|
||||
|
||||
# 读取图像
|
||||
image = cv2.imread('555024.jpg')
|
||||
image_copy = image.copy()
|
||||
cv2.namedWindow('image')
|
||||
cv2.setMouseCallback('image', select_roi, image)
|
||||
|
||||
# Keep looping until the 'q' key is pressed
|
||||
while True:
|
||||
cv2.imshow('image', image)
|
||||
key = cv2.waitKey(1) & 0xFF
|
||||
|
||||
# 按下'r'重置选择区域
|
||||
if key == ord('r'):
|
||||
image = image_copy.copy()
|
||||
roi_pts = []
|
||||
|
||||
# 按下'q'退出循环
|
||||
elif key == ord('q'):
|
||||
break
|
||||
|
||||
# 关闭所有打开的窗口
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
# 如果选择了区域,那么进行黄色检测
|
||||
if len(roi_pts) == 2:
|
||||
roi = image_copy[roi_pts[0][1]:roi_pts[1][1], roi_pts[0][0]:roi_pts[1][0]]
|
||||
hsv_roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
|
||||
lower_yellow = np.array([20, 100, 100])
|
||||
upper_yellow = np.array([30, 255, 255])
|
||||
mask = cv2.inRange(hsv_roi, lower_yellow, upper_yellow)
|
||||
|
||||
# 在掩码上找出轮廓
|
||||
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
||||
|
||||
# 如果有轮廓则找出最大的轮廓
|
||||
if contours:
|
||||
max_contour = max(contours, key=cv2.contourArea)
|
||||
x, y, w, h = cv2.boundingRect(max_contour)
|
||||
cv2.rectangle(roi, (x, y), (x+w, y+h), (0, 255, 0), 2)
|
||||
print(f"Yellow area at X: {x}, Y: {y}, W: {w}, H: {h}")
|
||||
|
||||
# 将边界框位置映射回原始图像
|
||||
x += roi_pts[0][0]
|
||||
y += roi_pts[0][1]
|
||||
cv2.rectangle(image_copy, (x, y), (x+w, y+h), (0, 255, 0), 2)
|
||||
print(f"Yellow area at X: {x}, Y: {y}, W: {w}, H: {h}")
|
||||
|
||||
cv2.imshow('Detected Yellow Area in ROI', image_copy)
|
||||
cv2.waitKey(0)
|
||||
cv2.destroyAllWindows()
|
@ -1,55 +0,0 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
# 使用絕對路徑
|
||||
image_path = 'image.jpg'
|
||||
# if not os.path.exists(image_path):
|
||||
# print("File does not exist:", image_path)
|
||||
# else:
|
||||
# print("File exists, attempting to load...")
|
||||
image = cv2.imread(image_path)
|
||||
|
||||
if image is None:
|
||||
print("But failed to load.")
|
||||
else:
|
||||
print("Image loaded successfully, processing...")
|
||||
|
||||
# Convert to HSV color space
|
||||
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
|
||||
|
||||
# Define the range for yellow color in HSV
|
||||
# Adjust these ranges based on your specific yellow color and lighting conditions
|
||||
lower_yellow = np.array([20, 100, 100])
|
||||
upper_yellow = np.array([30, 255, 255])
|
||||
lower_pink = np.array([140, 100, 100])
|
||||
upper_pink = np.array([170, 255, 255])
|
||||
lower_purple = np.array([129, 50, 50]) # Lower bound of purple
|
||||
upper_purple = np.array([158, 255, 255]) # Upper bound of purple
|
||||
lower_blue = np.array([110, 50, 50]) # Lower bound of blue
|
||||
upper_blue = np.array([130, 255, 255]) # Upper bound of blue
|
||||
lower_blue_violet = np.array([120, 50, 50]) # Lower bound of blue-violet
|
||||
upper_blue_violet = np.array([160, 255, 255]) # Upper bound of blue-violet
|
||||
lower_red2 = np.array([170, 100, 100])
|
||||
upper_red2 = np.array([180, 255, 255])
|
||||
|
||||
# Create a mask for yellow color
|
||||
mask = cv2.inRange(hsv, lower_pink, upper_pink)
|
||||
|
||||
# Find contours on the mask
|
||||
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
||||
|
||||
# Draw all contours
|
||||
for contour in contours:
|
||||
x, y, w, h = cv2.boundingRect(contour)
|
||||
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
|
||||
coordinates_text = f"X: {x}, Y: {y}, W: {w}, H: {h}"
|
||||
# if w > 100:
|
||||
print(coordinates_text)
|
||||
# Display coordinates on the image
|
||||
cv2.putText(image, coordinates_text, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1)
|
||||
|
||||
# Show the image with all bounding boxes drawn
|
||||
cv2.imshow('Image with yellow contours', image)
|
||||
cv2.waitKey(0)
|
||||
cv2.destroyAllWindows()
|
@ -1,40 +0,0 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
def detect_light_areas(image_path):
|
||||
# 讀取圖片
|
||||
image = cv2.imread(image_path)
|
||||
if image is None:
|
||||
print("Failed to load image.")
|
||||
return
|
||||
|
||||
# 將圖片從 BGR 轉換到 HSV 色彩空間
|
||||
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
|
||||
|
||||
# 設定 HSV 閾值範圍來選取淺色區域
|
||||
lower_hsv = np.array([0, 0, 70]) # 較低的 HSV 閾值
|
||||
upper_hsv = np.array([180, 50, 255]) # 較高的 HSV 閾值
|
||||
|
||||
# 創建遮罩
|
||||
mask = cv2.inRange(hsv, lower_hsv, upper_hsv)
|
||||
|
||||
# 找到遮罩上的輪廓
|
||||
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
||||
|
||||
# 在原始圖片上畫框
|
||||
for contour in contours:
|
||||
x, y, w, h = cv2.boundingRect(contour)
|
||||
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) # 綠色方框,2像素寬
|
||||
text = f"X:{x} Y:{y} W:{w} H:{h}"
|
||||
if w < 40 or h < 40:
|
||||
continue
|
||||
cv2.putText(image, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2) # 白色文字
|
||||
|
||||
# 顯示原圖和結果
|
||||
cv2.imshow('Original', image)
|
||||
# cv2.imshow('Light Areas Detected', mask) # 顯示遮罩
|
||||
cv2.waitKey(0)
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
# 使用上面的函數
|
||||
detect_light_areas('555011.jpg') # 請更換為實際的圖片路徑
|
@ -1,30 +0,0 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
# Load the image
|
||||
image_path = '555020.jpg' # replace with your image path
|
||||
image = cv2.imread(image_path)
|
||||
|
||||
# Convert to grayscale
|
||||
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
|
||||
|
||||
# Apply thresholding to get binary image
|
||||
_, binary = cv2.threshold(gray, 240, 255, cv2.THRESH_BINARY)
|
||||
|
||||
# Find contours of the white regions
|
||||
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
||||
|
||||
# Draw contours on the original image (optional, for visualization)
|
||||
for contour in contours:
|
||||
cv2.drawContours(image, [contour], -1, (0, 255, 0), 2)
|
||||
|
||||
# Print positions of the white regions
|
||||
for i, contour in enumerate(contours):
|
||||
x, y, w, h = cv2.boundingRect(contour)
|
||||
if w > 100:
|
||||
print(f"White region {i+1}: x={x}, y={y}, width={w}, height={h}")
|
||||
|
||||
# Show the image with contours (optional, for visualization)
|
||||
cv2.imshow('White regions', image)
|
||||
cv2.waitKey(0)
|
||||
cv2.destroyAllWindows()
|
@ -1,25 +0,0 @@
|
||||
from PIL import Image
|
||||
|
||||
def change_image_dpi(input_path, output_path, new_dpi):
|
||||
# 打开图像
|
||||
image = Image.open(input_path)
|
||||
|
||||
# 获取当前的dpi值(如果有)
|
||||
dpi = image.info.get('dpi', (72, 72))
|
||||
print(f"当前DPI: {dpi}")
|
||||
|
||||
# 保存图像并设置新的dpi值
|
||||
image.save(output_path, dpi=(new_dpi, new_dpi))
|
||||
print(f"DPI已更改为: {new_dpi}")
|
||||
|
||||
# 输入图像路径
|
||||
input_image_path = "image.jpg"
|
||||
|
||||
# 输出图像路径
|
||||
output_image_path = "image.jpg"
|
||||
|
||||
# 目标DPI
|
||||
new_dpi = 96
|
||||
|
||||
# 调用函数
|
||||
change_image_dpi(input_image_path, output_image_path, new_dpi)
|
Before Width: | Height: | Size: 24 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-02.png
Normal file
After Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 25 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-03.png
Normal file
After Width: | Height: | Size: 814 B |
Before Width: | Height: | Size: 26 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-04.png
Normal file
After Width: | Height: | Size: 1003 B |
Before Width: | Height: | Size: 25 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-05.png
Normal file
After Width: | Height: | Size: 622 B |
Before Width: | Height: | Size: 25 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-06.png
Normal file
After Width: | Height: | Size: 779 B |
Before Width: | Height: | Size: 26 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-07.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 24 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-08.png
Normal file
After Width: | Height: | Size: 643 B |
Before Width: | Height: | Size: 26 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-09.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-10.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-11.png
Normal file
After Width: | Height: | Size: 1022 B |
Before Width: | Height: | Size: 29 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-12.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 29 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-13.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 29 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-14.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 29 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛-15.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 84 KiB |
BIN
bin/themes/superstar/我的最愛/我的最愛_工作區域.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 484 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 987 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 887 B After Width: | Height: | Size: 721 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 884 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 831 B After Width: | Height: | Size: 783 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 349 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 771 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 878 B |
Before Width: | Height: | Size: 897 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 692 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 961 B |
Before Width: | Height: | Size: 828 B After Width: | Height: | Size: 580 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 974 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 937 B |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 484 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 987 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 887 B After Width: | Height: | Size: 721 B |