>> [MUSIC CHƠI]
>> ROB Bowden: Hi.
Tôi Rob và để cho kích thước của lên vấn đề này.
Vì vậy, chúng ta sẽ bắt đầu với copy.c như một mẫu, nhưng chúng ta sẽ được
làm cho một vài thay đổi.
>> Bây giờ chúng ta thấy chúng ta đang làm ngay lập tức một thay đổi nơi chúng ta không còn kiểm tra
cho rxc của chúng tôi không bằng 3, nhưng bây giờ chúng tôi đang kiểm tra rc không bằng 4.
Từ khi chúng tôi cũng muốn bao gồm, trong Ngoài các tập tin trong và ngoài file
lập luận, e mà là có được này yếu tố mà chúng tôi đang mở rộng quy mô.
>> Vì vậy, khi chúng tôi chắc chắn về điều đó, chúng tôi muốn sử dụng s quét f để chuyển đổi chuỗi
argv1 nổi một.
Và chúng ta sẽ lưu trữ trong yếu tố.
Ký tự bổ sung này là đảm bảo rằng chúng ta không thực sự nhập
một cái gì đó như 1.4 ABC tại dòng lệnh.
>> Bây giờ chúng ta sẽ tạo ra một số bí danh từ RV2 và RV3 không
tên rất hữu ích.
Chúng ta, thay vào đó, sẽ gọi chúng trong tập tin và ra file.
Bây giờ chúng ta sẽ đảm bảo rằng yếu tố của chúng tôi là thực sự có giá trị.
Vì vậy, nếu yếu tố nhỏ hơn hoặc bằng không hoặc lớn hơn 100, sau đó theo
spec, chúng ta nên từ chối rằng yếu tố.
>> Khi chúng tôi chắc chắn đó là tốt, bây giờ chúng ta có thể mở các tập tin n, và chúng ta phải làm
chắc chắn rằng nó đã được mở thành công.
Nếu không, sẽ trả về null.
Chúng ta sẽ mở file ra.
Và một lần nữa, chúng tôi muốn kiểm tra để chắc chắc chắn rằng nó mở thành công.
Và nếu nó không mở thành công, sau đó chúng tôi cũng cần phải chắc chắn để đóng
các tập tin n mà ban đầu thành công mở ra, hoặc người nào khác chúng ta có một
rò rỉ bộ nhớ.
>> Vì vậy, bây giờ chúng ta sẽ đọc trong bitmap tập tin tiêu đề và thông tin bitmap
tiêu đề từ các tập tin n.
Chúng tôi sẽ đảm bảo rằng các n tập tin là một bitmap hợp lệ.
OK.
>> Vì vậy, bây giờ chúng ta sẽ bắt đầu thực hiện một số thay đổi.
Như vậy bởi vì chúng ta sẽ được thay đổi điều, trước tiên chúng ta muốn nhớ
chiều rộng cũ của tập tin n.
Chúng tôi muốn nhớ đệm cũ của các tập tin bằng cách sử dụng n tính toán tương tự
từ copy.c.
>> Và bây giờ chúng ta sẽ thay đổi các thông tin tiêu đề bitmap.
Và vì vậy chúng tôi nhân cả hai chiều rộng và chiều cao bởi yếu tố từ
đó là những gì chúng tôi đang mở rộng quy mô bằng.
Chúng ta sẽ xác định đệm mới của tập tin bằng cách
bằng cách sử dụng chiều rộng mới.
Và chúng ta sẽ xác định mới kích thước của hình ảnh bằng cách sử dụng số
byte trong một hàng duy nhất mà là có là số lượng điểm ảnh trong dòng đó
lần kích thước của một điểm ảnh cộng với số byte đệm ở cuối
của hàng đó, và tất cả những gì nhân bởi số lượng hàng mà chúng tôi có.
Vì vậy, đó là số lượng các byte chúng tôi có trong dữ liệu hình ảnh của chúng tôi.
>> Bf.Bfsize bây giờ là có được số lượng của byte trong phiên bản beta hình ảnh của chúng tôi cộng
kích thước của tiêu đề của chúng tôi.
Vì vậy, cộng với kích thước của phần đầu tập tin bitmap và kích thước của bitmap thông tin tiêu đề.
OK.
Vì vậy, đó là nó cho tiêu đề của chúng tôi.
Chúng ta có thể viết các tập tin và đầu Thông tin tiêu đề ra của chúng tôi
tập tin, và chúng tôi đang tốt.
>> Bây giờ là lúc để bắt đầu thực sự viết các điểm ảnh
dữ liệu cho các tập tin ra.
Chúng ta sẽ khai báo một bộ đệm kích thước chiều rộng RGB cũ gấp ba, và chúng tôi
sẽ khai báo một biến được gọi là tê hàng, đó là chúng ta sẽ
bước đầu thiết lập bằng âm 1.
Chúng ta sẽ thấy rằng chúng ta sẽ được sử dụng rằng để theo dõi những gì
hàng chúng tôi hiện đã tải vào bộ đệm này.
OK.
>> Vì vậy bây giờ không giống như phiên bản tiêu chuẩn, thay vì lặp lại hơn ở trong
tập tin, chúng ta sẽ lặp qua mỗi hàng trong các tập tin ra ngoài và tìm ra
mà hàng trong các tập tin trong chúng ta muốn đặt trong hàng này trong các tập tin ra.
Vì vậy, lặp lại trên tất cả các hàng trong ra ngoài nộp bằng cách sử dụng tầm cao mới, chúng tôi đầu tiên
sẽ xác định hàng trong cũ nộp chúng ta sẽ sử dụng, mà chúng tôi
sẽ làm gì bằng cách này hiện nay hàng chia cho yếu tố.
Vì vậy, đó sẽ cung cấp cho chúng tôi hàng trong file cũ mà chúng tôi muốn.
>> Vì vậy, bây giờ nếu hàng bị tê liệt không bằng y cũ, chúng ta sẽ phải đọc hàng
mà chúng tôi muốn thành hiện hàng đệm của chúng tôi.
Vì vậy, làm thế nào chúng tôi sẽ làm điều đó?
Đầu tiên, chúng ta sẽ tìm ra vị trí bắt đầu liên tiếp trong
tập tin gốc.
Vì vậy, vị trí đó là có được qua tất cả các tiêu đề của chúng tôi và
bây giờ qua hàng y cũ.
>> Và như vậy có bao nhiêu byte đang ở trong một hàng duy nhất?
Một lần nữa, kích thước của RGB lần ba tuổi chiều rộng cộng với đệm cũ, vì vậy đó là
số byte trong một hàng duy nhất.
Và chúng tôi muốn bỏ qua hàng y cũ qua.
Vì vậy, chúng ta sẽ tìm f và chúng tôi sử dụng tìm kiếm các thiết lập để bắt đầu từ
bắt đầu của một tập tin.
Chúng ta sẽ e tìm cách vị trí này trong tập tin, đặt chúng tôi tại
bắt đầu của hàng chúng tôi muốn đọc vào bộ đệm của chúng tôi.
>> Chúng ta sẽ thiết lập hàng tê bằng y cũ.
Vì vậy, bây giờ nếu chúng ta lặp lại và chúng tôi muốn sử dụng cùng hàng này trong tập tin ra của chúng tôi,
sau đó chúng tôi sẽ không để đọc nó ở lại không cần thiết.
Vì vậy, thực sự, hàng tê là chỉ là một tối ưu hóa.
>> Cuối cùng, chúng ta sẽ đọc vào hàng hiện tại chiều rộng gấp ba RGB cũ
mà chúng tôi muốn từ tập tin gốc.
Vì vậy, bây giờ hàng hiện có chứa các điểm ảnh từ các tập tin ban đầu mà chúng tôi muốn
viết vào tập tin ra.
Vì vậy, bây giờ, giống như ở trên, thay vì duyệt qua tập tin cũ, chúng ta cần
nó để lặp lại các tập tin hàng mới.
Cũng ở đây, thay vì lặp qua tất cả của các điểm ảnh cũ trong hàng hiện,
chúng tôi muốn lặp qua tất cả các điểm ảnh trong tập tin mới của chúng tôi trong này
hàng cụ thể.
>> Tại sao chúng ta muốn làm điều đó?
Bởi vì chúng ta thấy ở đây là chúng ta không thực sự nhất thiết phải sử dụng tất cả các
điểm ảnh trong file gốc.
Bởi vì nếu chúng ta thu hẹp lại, chúng ta có thể thực sự muốn bỏ qua các điểm ảnh.
Và chúng tôi thấy rằng điều này -
x chia cho yếu tố -
phản ánh gần lên ở đây, nơi chúng ta nói y chia yếu tố để tìm ra rằng
hàng y thứ cũ tương ứng với hàng y thứ trong tập tin mới này.
>> Bây giờ chúng ta sẽ viết tất cả các các điểm ảnh từ hàng cũ
vào hàng mới của chúng tôi.
Khi chúng tôi đã làm điều đó, chúng ta cần phải chỉ đặt đệm ở cuối hàng của chúng tôi
và chúng ta sẽ lặp lại và tiếp tục cho tất cả các hàng trong tập tin mới của chúng tôi.
Cuối cùng, chúng ta cần phải đóng cũ của chúng tôi nộp, đóng tập tin mới của chúng tôi, và trở lại
bằng không bởi vì tất cả mọi thứ diễn ra tốt đẹp.
>> Tên tôi là Rob và điều này đã ngừng họp.
>> [MUSIC CHƠI]