[เล่นดนตรี] ROB สลิง: สวัสดี ฉันร็อบและให้ขนาดของ ปัญหานี้ ดังนั้นเรากำลังจะเริ่มต้นด้วยการเป็น copy.c แม่ แต่เรากำลังจะเป็น ทำให้ค่อนข้างเปลี่ยนแปลงบางอย่าง ตอนนี้เราเห็นเรากำลังทำทันที การเปลี่ยนแปลงที่เราไม่ได้ตรวจสอบ เพื่อ rxc ของเราไม่ได้เท่ากับ 3 แต่ตอนนี้ เรากำลังตรวจสอบ RC ไม่เท่ากับ 4 เนื่องจากเรายังต้องการที่จะรวมใน นอกเหนือจากในแฟ้มและออกไฟล์ ข้อโต้แย้งฉซึ่งเป็นไปได้นี้ ปัจจัยโดยที่เรากำลังปรับ ดังนั้นเมื่อเรากำลังตรวจสอบว่าการที่เราต้องการที่จะ ใช้สแกน s f เพื่อแปลงสตริง argv1 จะลอย และเรากำลังจะเก็บ ว่าในปัจจัย นี้ตัวละครเพิ่มเติมคือการทำให้แน่ใจว่า ว่าเราไม่ได้จริงเข้ามา 1.4 สิ่งที่ต้องการเอบีซี ที่บรรทัดคำสั่ง ตอนนี้เรากำลังจะสร้างชื่อแทนบางส่วน ตั้งแต่ RV2 และ RV3 ไม่ ชื่อที่เป็นประโยชน์มาก เราแทนจะเรียก ไว้ในไฟล์และเอาท์แฟ้ม ตอนนี้เรากำลังจะทำให้แน่ใจว่า ปัจจัยของเราถูกต้องจริง ดังนั้นถ้าปัจจัยที่มีค่าน้อยกว่าหรือเท่ากับ ศูนย์หรือมากกว่า 100 แล้วตาม spec ที่เราควรจะปฏิเสธ ปัจจัยที่ เมื่อเรากำลังตรวจสอบว่ามันเป็นเรื่องดีที่ตอนนี้เราสามารถ เปิดไฟล์ n และเราจะต้องทำให้ แน่ใจว่าจะประสบความสำเร็จในการเปิด ถ้ามันไม่ได้ที่จะกลับมาเป็นโมฆะ เรากำลังจะไปเปิดไฟล์ออก และอีกครั้งที่เราต้องการที่จะตรวจสอบเพื่อให้ แน่ใจว่ามันประสบความสำเร็จในการเปิด และถ้ามันไม่ได้ประสบความสำเร็จเปิดแล้ว เรายังต้องให้แน่ใจว่าได้ปิด ไฟล์ n ซึ่ง แต่เดิมที่ประสบความสำเร็จ เปิดหรืออื่น ๆ ที่เรามี หน่วยความจำรั่ว ดังนั้นตอนนี้เรากำลังจะอ่านในบิตแมป ส่วนหัวของแฟ้มและข้อมูลบิตแมป ส่วนหัวจากไฟล์ n เราจะทำให้แน่ใจว่า n เป็นไฟล์บิตแมปที่ถูกต้อง ตกลง ดังนั้นตอนนี้เรากำลังจะเริ่มต้น การเปลี่ยนแปลงบางอย่าง ดังนั้นเพราะเรากำลังจะได้รับการเปลี่ยนแปลง สิ่งแรกที่เราอยากจะจดจำ ความกว้างที่เก่าแก่ของไฟล์ n เราต้องการที่จะจำได้ว่าช่องว่างภายในที่เก่าแก่ของ n แฟ้มโดยใช้การคำนวณเดียวกัน จาก copy.c. และตอนนี้เรากำลังจะมีการเปลี่ยนแปลง ส่วนหัวของข้อมูลบิตแมป และอื่น ๆ เรากำลังคูณทั้งความกว้าง และความสูงโดยปัจจัยตั้งแต่ นั่นคือสิ่งที่เรากำลังปรับโดย เรากำลังจะไปตรวจสอบ padding ใหม่ของแฟ้มโดย โดยใช้ความกว้างใหม่ และเรากำลังจะไปตรวจสอบใหม่ ขนาดของภาพที่ใช้จำนวน ไบต์ในแถวเดียวซึ่งเป็นไป เป็นจำนวนพิกเซลในแถวที่ เท่าของขนาดของพิกเซลบวก จำนวนไบต์ของการขยายที่สิ้นสุด แถวนั้นและคูณทั้งหมดที่ จากจำนวนของแถวที่เรามี เพื่อให้เป็นจำนวนไบต์ ที่เรามีในข้อมูลภาพของเรา Bf.Bfsize ตอนนี้เป็นไปได้จำนวน ของไบต์ในรุ่นเบต้าภาพของเราบวก ขนาดของส่วนหัวของเรา ดังนั้นขนาดบวกของส่วนหัวของแฟ้มบิตแมป และขนาดของส่วนหัวของข้อมูลบิตแมป ตกลง เพื่อให้มันสำหรับส่วนหัวของเรา เราสามารถเขียนหัวไฟล์และ ส่วนหัวของข้อมูลที่จะออกของเรา ไฟล์และเรากำลังดี ตอนนี้มันถึงเวลาที่จะเริ่มต้นจริง เขียนพิกเซล ข้อมูลไปยังแฟ้มออก เรากำลังจะประกาศบัฟเฟอร์ขนาด เก่ากว้าง RGB อเนกประสงค์และเรา จะประกาศตัวแปรที่เรียกว่า ชาแถวซึ่งเป็นที่เรากำลังจะ ชุดแรกเท่ากับลบ 1 เราจะเห็นว่าเรากำลังจะใช้ ว่าในการติดตามสิ่งที่ แถวขณะนี้เรามีการโหลด ลงในบัฟเฟอร์นี้ ตกลง ดังนั้นตอนนี้แตกต่างจากรุ่นมาตรฐาน แทน iterating ไปที่ใน ไฟล์ที่เรากำลังจะย้ำกว่าแต่ละ แถวในแฟ้มออกและคิดออก ซึ่งแถวในไฟล์ที่เราต้องการ วางในแถวนี้ในแฟ้มออก ดังนั้น iterating ผ่านแถวทั้งหมดในออก ไฟล์โดยใช้ความสูงใหม่เราครั้งแรก จะตรวจสอบแถวในเก่า ไฟล์ที่เรากำลังจะใช้ที่เรา จะทำโดยการปัจจุบันนี้ แถวหารด้วยปัจจัย เพื่อที่จะให้เราแถว ในไฟล์เก่าที่เราต้องการ ดังนั้นถ้าไม่ชาแถว y เก่าไม่เท่ากัน เราจะต้องอ่านแถว ที่เราต้องการลงในบัฟเฟอร์แถวปของเรา ดังนั้นเราจึงมีวิธีการที่จะทำเช่นนั้นได้อย่างไร ขั้นแรกเราจะคิดออก ตำแหน่งที่เริ่มต้นในแถวที่ ไฟล์ต้นฉบับ ดังนั้นตำแหน่งที่เป็นไปได้ ที่ผ่านมาทั้งหมดของส่วนหัวของเราและ แถว y ตอนนี้ผ่านมาเก่า และอื่น ๆ กี่ไบต์ อยู่ในแถวเดียวได้หรือไม่ อีกครั้งเก่าขนาดของ RGB สามครั้ง ความกว้างบวก padding เก่าเพื่อให้เป็น จำนวนไบต์ในแถวเดียว และเราต้องการที่จะข้ามแถว y อดีตเก่า ดังนั้นเรากำลังจะฉแสวงหาและเรา ใช้หาชุดที่จะเริ่มต้นจาก จุดเริ่มต้นของไฟล์ เราจะพยายามที่จะฉตำแหน่งนี้ ในแฟ้มที่วางเราที่ จุดเริ่มต้นของแถวที่เราต้องการ การอ่านลงในบัฟเฟอร์ของเรา เรากำลังจะไปตั้งแถว ชาเท่ากับเก่า ดังนั้นตอนนี้ถ้าเราห่วงกลับและเราต้องการที่จะ ใช้แถวเดียวกันนี้ในแฟ้มออกของเรา แล้วเราจะไม่อ่าน อีกครั้งโดยไม่จำเป็น ดังนั้นจริงๆชาแถว เพียงแค่การเพิ่มประสิทธิภาพ สุดท้ายเรากำลังจะอ่านใน แถวปัจจุบันความกว้าง RGB เก่าอเนกประสงค์ ที่เราต้องการจากไฟล์ต้นฉบับ ดังนั้นตอนนี้แถวปมีพิกเซลจาก ไฟล์ต้นฉบับที่เราต้องการ เขียนลงในไฟล์ออก ดังนั้นตอนนี้เช่นเดียวกับข้างต้นแทน iterating กว่าไฟล์เก่าที่เราต้องการ มันจะย้ำกว่าแถวไฟล์ใหม่ ดีที่นี่แทนการวนไปทั่ว ของพิกเซลเก่าที่อยู่ในแถวป, เราต้องการที่จะย้ำกว่าทุก พิกเซลในไฟล์ใหม่ของเราในครั้งนี้ แถวโดยเฉพาะอย่างยิ่ง ทำไมเราจึงต้องการที่จะทำเช่นนั้น เพราะเราเห็นว่าที่นี่เราไม่ได้ จริงจำเป็นต้องใช้ทั้งหมดของ พิกเซลในไฟล์ต้นฉบับ เพราะถ้าเรากำลังหดตัวที่เราอาจจะ จริงต้องการที่จะข้ามพิกเซล และเราจะเห็นว่าเรื่องนี้ - x หารด้วยปัจจัย - อย่างใกล้ชิดกระจกขึ้นที่นี่ที่เราพูด y หารด้วยปัจจัยที่จะคิดออกว่า แถว y th-เก่าสอดคล้องกับ แถว th-y ในไฟล์ใหม่นี้ ตอนนี้เรากำลังจะเขียนทั้งหมด พิกเซลเหล่านี้จากแถวเก่า เข้าแถวใหม่ของเรา เมื่อเราได้ทำที่เราต้องการเพียงแค่ ใส่ช่องว่างที่ท้ายแถวของเรา และเราจะห่วงกลับและดำเนินการต่อไป แถวทั้งหมดที่อยู่ในแฟ้มใหม่ของเรา ในตอนท้ายเราต้องปิดเก่าของเรา ยื่นปิดแฟ้มใหม่ของเราและการกลับมา ศูนย์เพราะทุกอย่างไปได้ดี ชื่อของฉันคือร็อบและนี่คือ Recess [เล่นดนตรี]