Making .BMP images from scratch

  Рет қаралды 16,171

Kay Lack

Kay Lack

Күн бұрын

Пікірлер: 77
@UliTroyo
@UliTroyo 5 ай бұрын
I had no idea we were going to get this cool this quickly. Images are exactly how I got into C!
@neoeno4242
@neoeno4242 5 ай бұрын
Always good to get to the cool stage 😎
@w花b
@w花b 5 ай бұрын
Yeah, found some GitHub repos explaining how PNG worked and tried reading random PNGs from the internet to verify if it was accurate and tried building my own. The Huffman stuff was a pain in the butt to understand though.
@theoriginalneckbeard
@theoriginalneckbeard 5 ай бұрын
I just fell in love with your approach. One of the last Tech-KZbinrs providing actual in-depth information on interesting topics instead of clickbaiting you into surface-level topics that other KZbinrs already talked about a week ago just to grab some clicks.
@jumbledfox2098
@jumbledfox2098 2 ай бұрын
i think i've left a few comments on your channel before, but you're such a good teacher, your videos are so hard to stop watching and you really inspire me to keep going with my computer science stuff, thank you!!
@akramdiafat9380
@akramdiafat9380 5 ай бұрын
I have never understand something that quick without pausing the video To much,You are truly a good teacher
@kestergreen3844
@kestergreen3844 3 ай бұрын
You're an amazing tutor. The information you teach is more easily understand because you use graphical stories whereas others use some b-roll. Your endianness example was spot on! Go hard with the video editing juice! :)
@axelandru9346
@axelandru9346 5 ай бұрын
You are my god, you are the thing to go to while still feeling a junior computer scientist !
@alexseubert
@alexseubert 3 ай бұрын
GOAT programming channel
@norbux
@norbux 5 ай бұрын
This is premium content
@bradleysmith9924
@bradleysmith9924 4 ай бұрын
Thank you for your videos and clear articulation. I’m new to all of this and it’s so fascinating.
@LiftMeUp-seven
@LiftMeUp-seven 5 ай бұрын
I've learned to love and appreciate your work.
@pikzel
@pikzel 5 ай бұрын
Ooh, Charles Petzold’s Programming Windows, that brought back memories. Where I learned the message loop and event driven programming. Good times.
@script_sh
@script_sh 4 ай бұрын
That’s a pretty good video! Clear explanations in a non-exhaustive way. 10/10 I keep following this series and future others 😁
@__hannibaalbarca__
@__hannibaalbarca__ 5 ай бұрын
Good❤, KZbin post me this video. I do it many years ago, you remember me that days.
@Sandromatic
@Sandromatic Ай бұрын
I think what genuinely helped me understand endianness is to really think of it as an arbitrary choice, by arranging bytes vertically. This means that bytes arent arbitrarily looping back on themselves and the bits aren't in a weird order but instead you have to arrange things in such a way. Since you can't retrieve info out of memory in any unit less than 1 whole byte, this means that you can consider bytes as a unit without being biased in such a way. It's also kinda important to consider it as just an address ordering rather than a fundamental way it's ordered in reality. It also makes total sense for networking to be big endian though, because over a serial connection, the bit *is* the fundamental unit, and transmitting things in little endian byte order but big endian bit order would just be ridiculous.
@emmeryncariglino4983
@emmeryncariglino4983 3 ай бұрын
18:27 ok that's how i'm describing that flag from now on. ok but in all seriousness these videos are helping me get over burnout from my last tech job and i hope they continue for quite some time :D
@alfajrdream
@alfajrdream 5 ай бұрын
Your are amazing and have great contents. keep going
@phannguyetnguyen8254
@phannguyetnguyen8254 5 ай бұрын
That's great content. Thanks you for sharing.
@mrinalyadav4261
@mrinalyadav4261 5 ай бұрын
loved this video
@gocasimiro
@gocasimiro 5 ай бұрын
You rock! Thanks for the content!
@lame_lexem
@lame_lexem 5 ай бұрын
I like your c videos so helpful for beginners. I myself started with implementing image format but instead it was a qoi format, it's quite ok and quite elegant/simple to follow (also spec it two pages)
@neoeno4242
@neoeno4242 5 ай бұрын
QOI actually looks really cool! Thanks for introducing me to it 💙
@Humble_Electronic_Musician
@Humble_Electronic_Musician 5 ай бұрын
You make awesome content 💗
@npantic
@npantic 11 күн бұрын
Great stuff, inHex was a little discovery for me, thank you. Doing exercises, there is slight difficulty displaying colours on Windows using Debian wsl with watch. I had to use poor man's watch "while true; do clear; make run; sleep 0.5; done".
@yuxiang4218
@yuxiang4218 5 ай бұрын
Amazing, great content!
@laxmanneupane1739
@laxmanneupane1739 4 ай бұрын
Pure gold.
@azaleacolburn
@azaleacolburn 5 ай бұрын
Great Video
@umanggoel1418
@umanggoel1418 3 ай бұрын
you are so cool
@laxminandanhandique7874
@laxminandanhandique7874 2 ай бұрын
Given all the recent hype about AI, feels nice people are still interested in computing fundamentals
@harinramesh3468
@harinramesh3468 3 ай бұрын
Great content
@gamedevlife9950
@gamedevlife9950 4 ай бұрын
Hi, loving your videos. Just want to point out that the free_bitmap function at 13:46 will not actually set the bitmap.pixels pointer to NULL, as the Bitmap struct is being passed by value to the function. But great video overall, keep up the awesome work!
@DingBatCrazy
@DingBatCrazy 4 ай бұрын
This is true. Just to elaborate, the function should be updated to ``` void free_bitmap(struct Bitmap *bitmap) { free(bitmap->pixels); bitmap->pixels = NULL; // Now this affects the original bitmap in main } // then in main.c free_bitmap(&bitmap); ```
@vk8a8
@vk8a8 4 ай бұрын
what an inspiration!
@cherokeejaxk
@cherokeejaxk 5 ай бұрын
y female thomy shelby is giving me classes? the youtube game is undefeated damn
@neoeno4242
@neoeno4242 5 ай бұрын
lmao gotta say this one made me laugh
@cherokeejaxk
@cherokeejaxk 5 ай бұрын
@@neoeno4242 🫡❤️
@leunam3955
@leunam3955 4 ай бұрын
I’m Impressed by your knowledge, kudos. This is a very interesting learning video, thanks for sharing. I’m approaching the world of coding and wanted to ask which kind of advice you wanna share regarding the topic to someone that is a beginner. Also, how have you started programming?For how long have you been doing this? Thank you for your time!
@neoeno4242
@neoeno4242 4 ай бұрын
Hi - thank you! I will answer these in my next video :)
@leunam3955
@leunam3955 3 ай бұрын
@@neoeno4242 ❤️
@homka122
@homka122 3 ай бұрын
What is "Watch" block in your VS code? 16:35
@marwamite4024
@marwamite4024 5 ай бұрын
😍
@lumotroph
@lumotroph 4 ай бұрын
Twenty years! There’s hope for me yet. 😂❤
@surmenageatroie
@surmenageatroie 5 ай бұрын
awesome ! thanks :)
@kevinmccallister7647
@kevinmccallister7647 4 ай бұрын
I love this course, I wanted to ask how you came to learn these things - is it from years of tinkering or was this something they teach in college courses?
@neoeno4242
@neoeno4242 4 ай бұрын
Thanks! I'll answer this one in my next video - but briefly, years of tinkering. I didn't study CS at college though I started as a teenager.
@valinor3317
@valinor3317 4 ай бұрын
Actually learning WebGL and make graphics with Maths so check this will be useful. Thx!
@smithnigelw
@smithnigelw 5 ай бұрын
Please can you provide a download link for that hex editor you used to create the bmp. Thanks.
@totally_not_a_robot1342
@totally_not_a_robot1342 5 ай бұрын
Google ImHex it is developed by WerWolv.
@neoeno4242
@neoeno4242 5 ай бұрын
Have just added to the description - and here it is too - imhex.werwolv.net
@AlejandroPintosAlcarazo
@AlejandroPintosAlcarazo 4 ай бұрын
how is the program at te right of the screen called, where she manage the progress and content of the code?
@AlejandroPintosAlcarazo
@AlejandroPintosAlcarazo 4 ай бұрын
mean on the left, when she is profraing in c.
@neoeno4242
@neoeno4242 4 ай бұрын
Like at 13:02 ? That's an Excalidraw diagram on the left and VS Code on the right. I will say the Excalidraw-diagram stuff in this video did take quite a bit of editing work to get right :) I think enough that I might develop something custom soon...
@JohnDoe-el8tg
@JohnDoe-el8tg 5 ай бұрын
The diagram at 8:35 looks perfect. In what editor did you do that?
@failscript
@failscript 5 ай бұрын
I think it is excalidraw
@JohnDoe-el8tg
@JohnDoe-el8tg 5 ай бұрын
@@failscript oh wow, thank you! :)
@kriszenn1125
@kriszenn1125 4 ай бұрын
im more of a vim (and recently kakoune/helix!) user, and i tried emacs but i could not stand the modifer keys (Ctrl, Alt, Super...)
@jinxscript
@jinxscript 5 ай бұрын
I so invested
@catafest
@catafest 5 ай бұрын
do you test with FASM assembly ? can you make a video about tools you used ?
@neoeno4242
@neoeno4242 5 ай бұрын
Thanks for the comment! Not done anything with FASM assembler yet! Next video will be on assembler though I'll likely be sticking to the LLVM & GCC assemblers. I use quite a few tools and try to explain a little about them as we go through - so one video would be a bit of a challenge - but if there are any that you'd particularly appreciate more focus on please do let me know! I can add it to the list.
@salim444
@salim444 5 ай бұрын
3:48 if you write memory addresses from rught to left then little endian seems more intuitive. I know it is not the point of the video just thought I need to point that out
@neoeno4242
@neoeno4242 5 ай бұрын
Nice tip - thanks for sharing it
@Pirochiro
@Pirochiro 4 ай бұрын
All that about Endianness and no mention of eggs! 🤭
@pio_trek112
@pio_trek112 5 ай бұрын
What is the name of this hex editor?
@neoeno4242
@neoeno4242 5 ай бұрын
ImHex :) It's a good one. Found here: imhex.werwolv.net
@bonafontciel
@bonafontciel 2 ай бұрын
Honestly I work with this things everyday and never consider casting scenarios in little vs big endian
@aquahoodjd
@aquahoodjd 4 ай бұрын
I like my computer science teachers approach to walking up to the light switch and turning it on and off I'm saying this is a computer and what it's doing but very very fast. I ended up finding a loophole in my undergraduate regulations as I was a philosophy major at the time and even though I had a lot of computer background and had always had a computer including a BBs the medieval period of computing but yes play i was programming in basic. Which is the creation of agents and combining different open source can you eat machine learning algorithms of different architectural type be at large language models are convolutional neural networks... But the issue is that the specialization in one area doesn't necessarily translate into the specialization at a low level as you're more or less working at compared to where I am but my entry point was more data science and statistics I took a relational database replacement for foreign language requirement never understanding that I would actually end up a dual citizen living in the German speaking part of Switzerland after having spent a decade learning French in the French part so now I have to start over and to learn Swiss German. But if you're interested in hearing what I'm working on and if that interests you let me know.
@fadiallo1
@fadiallo1 5 ай бұрын
Did Not Understand, Where You Will Go To After That Video???
@neoeno4242
@neoeno4242 5 ай бұрын
Next is assembler :)
@fadiallo1
@fadiallo1 5 ай бұрын
@@neoeno4242 Great Job.
@df29208
@df29208 5 ай бұрын
Loved this video. Devoid of politics. I watched a CNN news report on an 'expert' reporting about two photos and if they had been 'altered', the expert pointed out the meta-data had not been altered, just the filter. I had to laugh, the IMF, CIA, NSA, MI5, MI6, MOSAD, FSB, etc all know how to change the meta data (or strip it) - probably their lowest level personnel learn how to do this on day one. Note: I don't know how to do it. As a joke: IMF is Mission Impossible secret organization, Impossible Missions Force (IMF). headed by Tom Cruise.
@anon_y_mousse
@anon_y_mousse 4 ай бұрын
I'm assuming you're making a joke when you say you don't know how to do it, but if you really don't, then I suggest you look it up because it's super easy, barely an inconvenience.
@aquahoodjd
@aquahoodjd 4 ай бұрын
You're essentially describing hexadecimal format correct?
What P vs NP is actually about
17:58
Polylog
Рет қаралды 148 М.
Crafting executables from raw bytes
26:43
Kay Lack
Рет қаралды 36 М.
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН
We Attempted The Impossible 😱
00:54
Topper Guild
Рет қаралды 56 МЛН
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
Explaining Data Structures Until I Go Insane
8:02
Mults
Рет қаралды 65 М.
How PNG Works: Compromising Speed for Quality
32:00
Reducible
Рет қаралды 645 М.
Just enough assembly to blow your mind
29:31
Kay Lack
Рет қаралды 161 М.
10 weird algorithms
9:06
Fireship
Рет қаралды 1,3 МЛН
In search of the perfect dynamic array growth factor
21:27
Kay Lack
Рет қаралды 27 М.
I made my own Image File Format
5:16
FaceDev
Рет қаралды 470 М.
Andrew Kelley   Practical Data Oriented Design (DoD)
46:40
ChimiChanga
Рет қаралды 167 М.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 1,2 МЛН
The Most Valuable File Format You've Never Heard Of
15:33
Acerola
Рет қаралды 573 М.
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН