>> [MUZYKA GRA]
>> ROB BOWDEN Cześć.
Jestem Rob i niech rozmiar się tym problemem.
Więc mamy zamiar rozpocząć copy.c jako szablon, ale mamy zamiar być
co sporo zmian.
>> Teraz widzimy, jesteśmy natychmiast czyni zmienić, gdy już nie sprawdzamy
na nasz RXC nie równa 3, ale teraz sprawdzamy rc nie jest równa 4.
Ponieważ chcemy również zawierać, dodatek do w pliku oraz z plików
argumenty, f, która będzie to czynnik, przez który mamy skalowanie.
>> Więc kiedy już jesteśmy pewni, że chcemy użyj s skanowania f przekonwertować ciąg
argv1 do pływaka.
I jedziemy do przechowywania że czynnikiem.
Ten dodatkowy znak jest upewnienie że nie są w rzeczywistości wprowadzając
coś jak 1,4 ABC w wierszu poleceń.
>> Teraz mamy zamiar utworzyć kilka aliasów od RV2 i nie są RV3
bardzo pomocna nazwy.
Mamy natomiast zamiar zadzwonić je w pliku i na pliku.
Teraz będziemy się upewnić, że nasz był naprawdę ważny czynnik.
Tak więc, jeśli współczynnik jest mniejszy niż lub równy zero lub większą niż 100, a następnie, jak na
spec, powinniśmy odrzucić że czynnikiem.
>> Kiedy jesteśmy pewni, że to dobrze, teraz możemy otwórz plik n, a my musimy zrobić
pewność, że został z powodzeniem otwarty.
Jeśli tak się nie stało, że zwróci wartość null.
Zamierzamy otworzyć plik out.
I znowu, chcemy sprawdzić, pewien, że pomyślnie otwarty.
A jeśli to nie z powodzeniem otworzyć, a następnie musimy także być zamknięta
Plik n, które pierwotnie powodzeniem otwarte, albo mamy
wyciek pamięci.
>> Więc teraz mamy zamiar przeczytać w mapie bitowej Nagłówek pliku bitmapy info
nagłówek z pliku n.
Jedziemy, aby upewnić się, że n był poprawny plik mapy bitowej.
OK.
>> Więc teraz mamy zamiar rozpocząć wprowadzenie pewnych zmian.
Tak, ponieważ mamy zamiar się zmienić rzeczy, najpierw chcę pamiętać
stary szerokość pliku n.
Chcemy pamiętać starą dopełnienie Plik n stosując te same obliczenia
z copy.c.
>> A teraz mamy zamiar zmienić Informacje bitmapy nagłówka.
I tak jesteśmy pomnożenie zarówno szerokość i wzrost o współczynnik od
że to, co mamy skalowanie przez.
Jedziemy do określenia Wyściółka z nowego pliku przez
za pomocą nowej szerokości.
I zamierzamy ustalić nowy rozmiar obrazu za pomocą liczby
bajtów w jednym rzędzie, które zamierza być liczba pikseli w tym wierszu
Czasy rozmiar piksela oraz Liczba bajtów w celu wypychania
z tego wiersza oraz że mnożenie wszystkich przez liczbę wierszy, które mamy.
Więc to jest liczba bajtów mamy w danych obrazu.
>> Bf.Bfsize teraz będzie numer bajtów w naszym obrazu beta Plus
Wielkość naszych nagłówków.
Więc plus rozmiar plików graficznych nagłówka Informacje i rozmiar bitmapy nagłówka.
OK.
Tak, to jest to dla naszych nagłówków.
Możemy zapisać plik i głowę Informacje nagłówka do naszego wyjazdu
plik, a my jesteśmy dobrzy.
>> Teraz nadszedł czas, aby rozpocząć faktycznie pisanie piksel
danych do pliku na zewnątrz.
Mamy zamiar zadeklarować bufor wielkości stary szerokość RGB trzyosobowe, a my
zamiar zadeklarować zmienną wiersz zdrętwiałe, który jest zamierzamy
początkowo równy negatywnej 1.
Zobaczymy, że będziemy używać że aby śledzić, co
rząd obecnie załadowany w tym buforze.
OK.
>> Więc teraz w przeciwieństwie do standardowej wersji, zamiast iterowanie na in
plik, idziemy do iteracyjne nad każdym wiersz w pliku out i dowiedzieć się,
który wiersz w pliku w chcemy umieść w tym wierszu w pliku zewnątrz.
Więc iterowanie wszystkie wiersze w out plików przy użyciu nowego wysokość, jesteśmy pierwszy
zamiar określenia wiersz stary plik będziemy korzystać, których jesteśmy
zrobić poprzez ten prąd wiersz podzielony przez współczynnik.
Tak, że będzie nam wiersz w starym pliku, który chcemy.
>> Więc teraz, jeśli rząd zdrętwiałe nie równa stare r, mamy zamiar przeczytać wiersz
że chcemy do naszego bufora wiersza Wal.
Więc jak mamy to zrobić?
Po pierwsze, mamy zamiar dowiedzieć się, Stanowisko, że zaczyna ten wiersz w
oryginalny plik.
Tak, że pozycja będzie przeszłość wszystkich naszych nagłówków i
teraz stare stare r wierszy.
>> I tak jak wiele bajtów są w jednym wierszu?
Ponownie, wielkość potrójnie razy stary RGB szerokość oraz stare wypełnienie, więc to
liczba bajtów w jednym rzędzie.
I chcemy Pomiń starych y wierszy.
Więc idziemy do f szukać i jesteśmy używając szukać zestaw zacząć od
na początku pliku.
Jedziemy do f dążyć do tej pozycji w pliku, stawiając nas na
początku wiersza chcemy przeczytać w naszym buforze.
>> Zamierzamy ustawić wiersz zdrętwiałe równa starej y.
Więc teraz, jeśli pętla z powrotem, a my chcemy używać tego samego wiersza w naszym archiwum na zewnątrz,
wtedy nie będziemy czytać to ponownie niepotrzebnie.
Tak naprawdę, to rząd zdrętwiałe tylko optymalizacja.
>> Wreszcie będziemy czytać w obecny rząd stara szerokość RGB potraja
że chcemy z oryginalnego pliku.
Więc teraz bież wiersz zawiera piksele z oryginalny plik, który chcemy
Napisać do pliku na zewnątrz.
Więc teraz, tak jak wyżej, zamiast iterowanie starego pliku, musimy
to w celu przechodzenia do nowych plików wierszy.
Więc tutaj, zamiast iteracji nad wszystkim starych pikseli, które w cur rzędu,
chcemy iteracyjne nad wszystkie pikseli w naszym nowym pliku w tym
szczególności rząd.
>> Dlaczego chcesz to zrobić?
Ponieważ widzimy, że nie jesteśmy faktycznie musi korzystać z wszystkich
pikseli w oryginalnym pliku.
Bo jeśli jesteśmy kurczy, możemy rzeczywiście chcesz pominąć pikseli.
I widzimy, że ta -
x dzieli się przez współczynnik -
ściśle odzwierciedla się tu, gdzie mówimy y podzielić przez współczynnik, aby dowiedzieć się, że
Stare r-ty wiersz odpowiada r-ty wiersz w tym nowym pliku.
>> Teraz mamy zamiar napisać wszystko te pikseli od starego rzędu
do naszego nowego wiersza.
Kiedy już to zrobisz, musimy po prostu umieścić wyściółkę pod koniec naszego rzędu
a my pętlę z powrotem i kontynuować przez wszystkie wiersze w naszym nowym pliku.
Na koniec, musimy zamknąć nasz stary złożyć, zamknąć nasz nowy plik, a zwrot
zerowy, ponieważ wszystko poszło dobrze.
>> Nazywam się Rob i to było zagłębienie.
>> [MUZYKA GRA]