Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -171,7 +171,7 @@ def overlay_glasses(face_img, glasses_img, left_eye, right_eye):
|
|
| 171 |
GLASSES_CATALOG = {
|
| 172 |
# النظارة 1
|
| 173 |
"النظارة المستديرة (1)": {
|
| 174 |
-
"path": "assets/507b01553ce6931a5d45b5554893a24a.jpg",
|
| 175 |
"price": 120.00,
|
| 176 |
"description": "نظارة مستديرة كلاسيكية، مثالية للوجه البيضاوي.",
|
| 177 |
"shape_fit": "بيضاوي"
|
|
@@ -179,7 +179,7 @@ GLASSES_CATALOG = {
|
|
| 179 |
|
| 180 |
# النظارة 2
|
| 181 |
"النظارة الطيار (2)": {
|
| 182 |
-
"path": "assets/56a9c0a1d10c21d475159d6890f4cf48.jpg",
|
| 183 |
"price": 85.00,
|
| 184 |
"description": "تصميم طياري رقيق، يبرز جمال الوجه.",
|
| 185 |
"shape_fit": "بيضاوي"
|
|
@@ -187,32 +187,33 @@ GLASSES_CATALOG = {
|
|
| 187 |
|
| 188 |
# النظارة 3
|
| 189 |
"النظارة المربعة (3)": {
|
| 190 |
-
"path": "assets/b1c4d0a357457c77974d5ce4580d0e8e.jpg",
|
| 191 |
"price": 99.00,
|
| 192 |
"description": "إطار مربع عصري، مناسب لإضافة تحديد للوجه البيضاوي.",
|
| 193 |
"shape_fit": "بيضاوي"
|
| 194 |
}
|
| 195 |
}
|
| 196 |
-
|
|
|
|
| 197 |
|
| 198 |
LOADED_GLASSES = {}
|
| 199 |
|
| 200 |
def load_glasses():
|
| 201 |
-
"""تحميل صور النظارات عند بدء التشغيل."""
|
| 202 |
all_loaded = True
|
| 203 |
for name, data in GLASSES_CATALOG.items():
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
except Exception as e:
|
| 212 |
-
print(f"❌ خطأ حاد أثناء تحميل '{name}': {e}")
|
| 213 |
all_loaded = False
|
| 214 |
return all_loaded
|
| 215 |
|
|
|
|
|
|
|
| 216 |
GLASSES_LOADED_OK = load_glasses()
|
| 217 |
|
| 218 |
|
|
|
|
| 171 |
GLASSES_CATALOG = {
|
| 172 |
# النظارة 1
|
| 173 |
"النظارة المستديرة (1)": {
|
| 174 |
+
"path": "assets/507b01553ce6931a5d45b5554893a24a.jpg",
|
| 175 |
"price": 120.00,
|
| 176 |
"description": "نظارة مستديرة كلاسيكية، مثالية للوجه البيضاوي.",
|
| 177 |
"shape_fit": "بيضاوي"
|
|
|
|
| 179 |
|
| 180 |
# النظارة 2
|
| 181 |
"النظارة الطيار (2)": {
|
| 182 |
+
"path": "assets/56a9c0a1d10c21d475159d6890f4cf48.jpg",
|
| 183 |
"price": 85.00,
|
| 184 |
"description": "تصميم طياري رقيق، يبرز جمال الوجه.",
|
| 185 |
"shape_fit": "بيضاوي"
|
|
|
|
| 187 |
|
| 188 |
# النظارة 3
|
| 189 |
"النظارة المربعة (3)": {
|
| 190 |
+
"path": "assets/b1c4d0a357457c77974d5ce4580d0e8e.jpg",
|
| 191 |
"price": 99.00,
|
| 192 |
"description": "إطار مربع عصري، مناسب لإضافة تحديد للوجه البيضاوي.",
|
| 193 |
"shape_fit": "بيضاوي"
|
| 194 |
}
|
| 195 |
}
|
| 196 |
+
|
| 197 |
+
# (نترك نظارة واحدة دون استخدام لأننا نستخدم أول ثلاث نظارات فقط للعرض)
|
| 198 |
|
| 199 |
LOADED_GLASSES = {}
|
| 200 |
|
| 201 |
def load_glasses():
|
| 202 |
+
"""تحميل صور النظارات والبيانات عند بدء التشغيل."""
|
| 203 |
all_loaded = True
|
| 204 |
for name, data in GLASSES_CATALOG.items():
|
| 205 |
+
# القراءة باستخدام cv2.IMREAD_UNCHANGED للقراءة كـ JPG عادي مع تجاهل قناة ألفا
|
| 206 |
+
img = cv2.imread(data['path'], cv2.IMREAD_UNCHANGED)
|
| 207 |
+
if img is not None and img.size > 0: # تم تغيير شرط التحقق للتأكد من القراءة الصحيحة لـ JPG
|
| 208 |
+
LOADED_GLASSES[name] = img
|
| 209 |
+
else:
|
| 210 |
+
# رسالة تحذير مخصصة لحالة فشل القراءة
|
| 211 |
+
print(f"⚠️ تحذير: فشل تحميل النظارة '{name}' من المسار: {data['path']}. يرجى التحقق من وجود الملف واسم الامتداد.")
|
|
|
|
|
|
|
| 212 |
all_loaded = False
|
| 213 |
return all_loaded
|
| 214 |
|
| 215 |
+
# ...
|
| 216 |
+
|
| 217 |
GLASSES_LOADED_OK = load_glasses()
|
| 218 |
|
| 219 |
|