مرحبًا بعودتك.
كيف وجدته؟
هل كانت صعبة؟
أتمنى ألا تكرهني لأنك جعلت الأمر صعبًا بعض الشيء ، لكنه سيكون شيئًا جيدًا.
وتذكر ، إذا لم تفهمها على الفور ، فهذه ليست مشكلة كبيرة.
هذه هي الطريقة التي نتعلم.
لذلك دعونا نجعل هذا أكبر قليلاً.
ها أنت ذا.
ونبدأ بخطوتنا الأولى ، وهي الحصول على هاتين الحجتين اللتين سنستخدمهما.
إذا كيف يمكننا أن نفعل هذا؟
حسنًا ، أول شيء سنفعله هو لنقل المسار ، وهو المسار الأول لصورنا.
أو دعنا نسميها فقط.
صورة.
مجلد.
وسيستخدم مجلد الصور هذا cis dot arc v وهو الوسيطات وتذكر أن arc v هو أول
ملف هو ملف python.
هذا هو الثاني وهذا هو الثالث.
طريقة عمل البرمجة ، نبدأ بصفر ، ثم واحد ، ثم اثنان.
إذن ماذا سنقول؟
هل V الخاص بنا واحد هنا؟
ثم بالنسبة للثاني ، ما هو الناتج؟
مجلد.
ستكون ست نقاط قوس v.
اثنين.
لذلك أحب دائمًا اختبار ما فعلناه لأننا نريد التأكد من صحة افتراضاتنا.
لذلك دعونا فقط نطبع الصورة.
مجلد ومجلد الإخراج.
ودعنا فقط نشغل هذا الملف.
حسنًا ، انظر إلى ذلك.
نحصل على بوكيدكس وجديد.
يبدو أن هذا يعمل.
رائع.
لذلك قمنا بالمهمة الأولى.
ماذا عن الثانية؟
والثاني هو التحقق من وجود هذا المجلد الجديد.
إذا لم يكن الأمر كذلك ، فنحن بحاجة إلى إنشائه حتى نتمكن من استخدامه هنا لوضع الصور.
لذا مرة أخرى ، هذا يبدو وكأنه عبارة إذا.
لذلك سأقول إذا.
ثم تحقق مما إذا كان المجلد موجودًا.
لذا فإن الطريقة التي يمكننا القيام بذلك هي استخدام وحدة OSS.
الآن هناك أيضًا وحدة مسار lib التي يمكنك استخدامها.
الأمر متروك لك تمامًا.
الآن مع الصعاب.
ما يمكننا فعله هو أن نقول إن نقطة مسار النقطة o موجودة.
وهذا سيتحقق فقط ، هل هذا موجود؟
لذلك سأقول مجلد الإخراج.
هل هذا موجود؟
لذلك دعونا نرى ما هو ناتج هذا.
لذا قبل أن أفعل عبارة if مرة أخرى ، أحب اختبار الكود الخاص بي ، لذلك سأقول.
إذا كان مسار O موجودًا.
أو آسف.
بدلاً من إذا أردنا الطباعة ، فلنقم بتشغيل هذا.
ونصبح كاذبين.
لماذا هو خطأ؟
لأنه غير موجود.
لذا ، لكي تعمل عبارة if الخاصة بنا ، علينا فعل ذلك.
علينا أن نقول إذا.
ليس لأننا نريد الحصول على العكس الصحيح.
إذا لم يكن هذا موجودًا ، فنحن نريد تحويله إلى صحيح حتى نتمكن من القيام بشيء داخل هذه الكتلة
، وهو إنشاء المجلد.
فكيف يمكننا فعل ذلك؟
مرة أخرى ، نستخدم وحدة OSS ونستخدم طريقة make dirs أو make directory ونعطيها مجلد
إخراج الدليل.
لذا مرة أخرى ، دعنا نختبر الكود الخاص بنا.
وإذا قمت بتشغيل هذا.
انظر إلى ذلك.
لدينا المجلد الجديد.
رائع.
وبهذه الطريقة ، إذا قمت بتشغيل هذا الرمز مرة أخرى ، فإننا نرى أننا لا ننشئ مجلدًا آخر لأنه ، حسنًا
، نحن فقط نتحقق من هذا.
ولأن هذا المجلد موجود الآن ، فلن نكرره وننشئ مجلدًا آخر.
رائع.
لذا خطوة بخطوة ، نحن نحقق تقدمًا.
ومرة أخرى ، قد تسأل نفسك ، انتظر أندريه.
لم أتعلم أبدًا عن Make Ders.
كيف يمكنني فعل ذلك؟
ومرة أخرى ، هذا شيء عليك فقط أن تتدرب عليه حيث تبحث عن ما يفعله النموذج وأنت تبحث في Google حولك وهذه هي
الطريقة التي تكتشف بها الأشياء.
لا أحد لديه أشياء يحفظها كمبرمج.
لا تكرهيني.
أنا فقط أساعدك في ممارسة تلك العضلات.
حسنًا ، الجزء الأخير.
الجزء الأخير هو حلقة من خلال pokédex ، والتقاط كل صورة وتحويلها وحفظها في المجلد الجديد.
فكيف يمكننا فعل ذلك؟
حسنًا ، نقوم بعمل حلقة for وسنذكر اسم الملف ثم مرة أخرى سنستخدم دليل قائمة نقاط نظام التشغيل.
وستكون هذه العناصر الموجودة في الدليل.
إذن باستخدام list dir ، ما يمكننا فعله هو مجرد إعطائها مجلد الصور.
وهنا لدينا الآن كل من مسارات الملفات هذه.
الآن هنا يمكنني القول أن الصورة تساوي الصورة نقطة مفتوحة.
وماذا نفعل هنا؟
لأن تذكر أننا سنفتح هذا في كل مرة ، أليس كذلك؟
وهذا الملف من JPEG إلى PNG موجود خارج هذه المجلدات.
لذلك نحن بطريقة ما بحاجة إلى فتح.
هذه الصور في pokédex.
لكن تذكر أننا نريد استخدام أي مدخلات لأن مجلد pokédex قد لا يكون هو نفسه دائمًا.
لذا بدلاً من الاستيلاء على مجلد Pokédex ، سنستخدم ببساطة سلسلة SW.
وضمن هذه السلسلة سأقول إننا نريد.
صورة.
مجلد.
وهو ما سيعطينا pokédex slash والشرطة المائلة هنا ، لأننا نفترض أن المستخدم سيدخل الشرطة
المائلة ، ولا يتعين علينا تضمينها هنا ثم إعطاء سلسلة أخرى ستكون هي الملف.
اسم.
الذي نحصل عليه من هنا.
نفتح الآن هذه الصور ، كل واحدة منها ، وبعد ذلك يمكننا تحويلها ، أليس كذلك؟
لذا دعونا نحولها بالقول image ، dot save.
ومرة أخرى ، سنستخدم سلسلة F ونفعل نفس الشيء ، لكن هذه المرة لمجلد الإخراج.
لذلك سأقول.
مجلد الإخراج.
أعطها.
اسم الملف.
ثم فاصلة ثم قم بتحويلها إلى Pag.
وللمتعة فقط ، دعنا نقول فقط اطبع كل شيء لإعلامنا أنه في كل مرة تتم فيها معالجة صورة ، نقوم بطباعة
كل شيء.
الآن سنحاول تشغيل هذا الرمز.
هناك بالفعل خطأ في هذا الرمز يجب علينا إصلاحه ، لكن دعنا نرى فقط ما سيحدث.
لذا سأقوم بتشغيل هذا.
وها نحن ذا.
لقد فعلنا جميعًا ، كل شيء ، كل شيء ، تم كل شيء.
أربع صور ويبدو أنها عملت بشكل صحيح.
لنلقي نظرة.
إذا ذهبت إلى المجلد الجديد هنا.
همم.
يبدو أن هذه لا تزال بتنسيق JPEG.
هذا غريب.
لماذا يكون ذلك؟
اعتقدت أنه يجب علينا تحويل هذه.
الصحيح.
حسنًا ، ماذا لو كان الحفظ موجودًا داخل النقطة ، p و g؟
لذا مرة أخرى ، لنجعل هذا أصغر قليلاً.
لذلك سنقول: احفظنا P&G بتنسيق ملف ، P&G إذا قمت بتشغيل هذا.
حسنا.
انظر إلى ذلك.
لدينا الآن الصور ، ولكن.
أوه ، لدينا.
نقطة jpeg ، الصفحة المنقطة.
ماذا يحدث هنا؟
حسنًا ، علينا تنظيف اسمنا.
الصحيح.
إذن ما علينا القيام به.
هو عندما نلتقط الصورة مفتوحة.
نحتاج إلى إزالة dot jpeg من تلك الصورة حتى نتمكن من حفظها كـ p و g.
فكيف يمكننا فعل ذلك؟
وهذا شيء قد تضطره إلى Google ، لأنه توجد بالفعل أداة مفيدة يمكننا استخدامها مع وحدة
نظام التشغيل التي تتيح لنا القيام بذلك.
إذن ما يمكننا فعله هو أن نقول نظيفًا.
اسم وسنقول مسار نقطة O.
نص منقسم.
وما سيفعله هذا هو تقسيم النص لنا.
لذلك اسمحوا لي أن أريك.
سأقول اسم الملف.
وهنا ، لن أحفظ أي شيء.
سأقوم بالتعليق على هذا.
وأريد فقط طباعة اسم نظيف.
لذلك دعونا نرى فقط ما يفعله النص المقسم.
سأقوم بمسح هذا وتشغيل.
ثانية.
أوه ، ولدي شاي إضافي هنا.
يجب أن يكون نص مقسم.
لذلك دعنا نقول ذلك مرة أخرى.
وانظر إلى ذلك.
يعطيني tuple يقسم النص بين الاسم والامتداد.
هذا مفيد للغاية.
لذلك نحتاج فقط إلى الاحتفاظ بهذا الجزء الأول ولا نهتم بهذا الجزء حتى نتمكن من الوصول
إلى الاسم النظيف بقول صفر.
لذا فإن العنصر الأول في المجموعة.
الآن إذا عدت إلى هذا وبدلاً من أن نستخدم الاسم النظيف لحفظ الصورة.
يجب أن يعمل هذا.
لذا اسمحوا لي أن أزيل بعض التعليقات هنا.
وشيء آخر أريد القيام به هو أنني أريد إزالة كل هذه الصور لأننا لم نعد بحاجة إليها.
من الناحية المثالية ، لدينا صور P&G فقط ، لذلك سأقوم بالفعل بإزالة هذا المجلد الجديد.
لذلك دعنا نقول حذف.
تمام.
يمكنك حذفه.
ها أنت ذا.
انا ذاهب لانقاذ.
ودعونا نرى ما إذا كان هذا يعمل الآن.
لننفذ أمرنا.
كله تمام.
إذا عدنا.
مرحبًا ، تحقق من ذلك.
جميع صورنا الآن هي PNG.
ورأيت مدى سرعة ذلك.
لقد أنشأنا للتو أول محول JPEG إلى PNG.
يمكن تحويل هذا الملف الآن طالما أعطيته مجلدًا به.
يمكنك منحها مئات الصور وآلاف الصور من JPEG وسوف تقوم بتحويلها إلى PNG.
إذا كنت تريد ، يمكنك حتى تغيير حجمها.
يمكنك حتى إضافة مرشحات للصور لهم.
ونحن قادرون على فعل ذلك كله ببضعة أسطر من كود بايثون وبعض المكتبات المفيدة.
رائع جدا.
نحن الآن فقط نخدش السطح هنا ، لكنك بدأت في رؤية قوة بايثون.
لدينا مشكلة.
ويمكن حل هذه المشكلة باستخدام Python ومكتباتها.
ومن خلال إجراء القليل من البحث على Google ، وقليل من التجربة والخطأ وتصحيح أخطاء الكود الخاص بنا ، فقد
صنعنا شيئًا يمكن أن يوفر علينا الكثير من الوقت.
بدلا من القيام بذلك يدويا.
عمل جيد إذا كنت قد وصلت إلى هذا الحد.
هذا هو أول مشروع لدينا لمعالجة الصور.
أتمنى أن تكون متحمسًا.
لا يزال هناك الكثير لتغطيته.
لكن امنح نفسك تربيتة على ظهرك وسأراكم في الفيديو التالي.
مع السلامة.