"I'm tired of these stupid image file formats, so I'm contributing to the problem"
@akaithecreator74485 ай бұрын
439 likes and 1 reply?
@Ali_Jafari5 ай бұрын
😂😂
@BadmanYT-12545 ай бұрын
@@akaithecreator7448 why are you here
@Sirbozo4 ай бұрын
lol
@nonexistentsquare20924 ай бұрын
@@BadmanYT-1254bro really said “Begone fool, for thou hath spoken too foul a word to remain” 💀
@kousheralam Жыл бұрын
wow, coverting a binary -> string -> do string manipulation -> show from the string. What's inside your head bro, it's pure genius
@haraldbackfisch1981 Жыл бұрын
Going from int to string to almost always a terrible idea, just thinking of memory or lack of multiplication for data manipulation, have fun blurring in hex with strings. I love that he did it tho, sometimes u just gotta f around and find out, else we wouldn't have nice things in the first place :)
@AOSP-is-still-Linux5 ай бұрын
@@haraldbackfisch1981 I think the OP was ironic, as the format of the message felt like that.
@haraldbackfisch19815 ай бұрын
@@AOSP-is-still-Linux youre right idk what i was thinking... wasnt thinking i guess 😅
@Aloofmeepgamer5 ай бұрын
Srsly
@stgigamovement4 ай бұрын
BWTC32Key B3K files are what happens after crossing compression with encryption with binary-to-text encoding. It actually works well in spite of me doing it because I don't like Base64.
@lizkeres25934 ай бұрын
The major difference between jpeg and PNG is not only transparency but also the compression
@borstenpinsel4 ай бұрын
Both are compressed. Just with really different methods. Jpeg tries to emulate chunks of 8x8 px with parameters to a trig function (lossy to veeerry lossy depending on some parameter, but even the best quality (and thus worst compression factor) is very lossy). PNG however is basically a bitmap (lossless, no compression) which is then compressed with tar/gz algorithm. Basically cheating by making the 3rd party compression algorithm part of the file definition. It's like putting wave files into a zip folder and calling it a new audio format.
@ursulmusic4 ай бұрын
@@borstenpinselSomething like audio FLAC, as it's lossless compression for PCM audio?
@milesmartig56034 ай бұрын
jpeg and png both can store a lossless image
@CryptoOfficial4 ай бұрын
@@milesmartig5603 jpeg is per definition a lossy format even if you crank up the quality to 100% it’s still doing magic things with Fourier transformation and converting your image in a lot of lookalike patterns that they are close enough of the original pixels.
@Henrix19984 ай бұрын
@@borstenpinselYou can't say PNG doesn't have compression, it just has lossless compression, even before tar/gz
@y32code165 ай бұрын
2:27 "turns out its not 3.5 times more size" *shows a picture of 3.3x* "it can go up to 98 percent more size" *shows a picture of 98 times more size* on a 160.2 times more size image. yep thats face dev for ya
@Kynatosh3 ай бұрын
Yeah that was really weird, bro can't calculate
@MrNosounder19 күн бұрын
I fucking love how random these numbers are
@dalhaan Жыл бұрын
Tip: you can half the size of your files if you store the RGB values as raw bytes instead of characters. Each character is 1 byte long (assuming you are using a 1 byte character encoding like ASCII or UTF-8), but a hex character just represents half a byte in a human readable format. "9e", for instance, just represents the number 158 (uint8) which only takes up one byte, where storing "9e" as two characters you are using two bytes. Hex goes from 00 (0) -> FF (255), which is exactly how much a byte can hold. To do this you'll need to allocate a buffer of the number of pixels in the image times 3 (RGB per pixel = 3 bytes (1 byte for each colour) * number of pixels), then for each pixel: write a uint8 for the red value, write a uint8 for the green value, write a uint8 for the blue value. To read the file, loop over each pixel and read each byte (uint8) instead of writing.
@dalhaan Жыл бұрын
If you wanted you could also add an alpha channel by just adding an extra byte after blue, this would make each pixel 4 bytes instead of 3. And now you've created the bitmap image format 🙂
@sollybunn Жыл бұрын
Doesn't he do this 3m into the video
@FaceDevStuff Жыл бұрын
@@sollybunn I only stored the metadata (width & height) as bytes, the rest is full of hex values
@rumisbadforyou9670 Жыл бұрын
he knew that, he's being rеtагded for no reason. he's just wants to jack up the yt algorithm, thinking "one day i will be making quadrillion dollars per nanosecond by pооping out: 'i pressed a key on my keyboard' / 'i copied seven lines of code from stack overflow' type of videos, yupeee!"
@sollybunn Жыл бұрын
@@FaceDevStuff that's a bruh moment (you didn't really expand on "were dealing with raw bytes now" so that's what I assumed)
@dvidpi5 ай бұрын
wowzers, im converting all images in my gallery to .bruh files! so efficient, fast and lightweight
@m4rt_4 ай бұрын
situation: there are 10 competing formats solution: lets create a new one to replace the old ones. new situation: there are 11 competing formats (Heavily based on an XKCD comic)
@alastor--radiodemon75565 ай бұрын
bro made a .bmp
@magicjinn5 ай бұрын
was about to comment this
@_kitaes_5 ай бұрын
but worse
@alastor--radiodemon75565 ай бұрын
@@_kitaes_ just a tiny bit worse but it balances out with the funnies :3
@magicjinn5 ай бұрын
@@_kitaes_ yeah, but it ends with .bruh, worth it
@nomorebadmilo5 ай бұрын
bro, why are you here, smily face demon.
@Ceelbc Жыл бұрын
By converting it into hex of 6 characters, you lost transparency. However, if you made it hex of 8 characters long, you could keept the transparency.
@blissful499211 ай бұрын
very inneficient
@Luna58295 ай бұрын
with 8 characters you'd only get 1 decimal point of transparency 9 characters is pretty good tho
@Ceelbc5 ай бұрын
@@Luna5829 RRGGBBTT, with T transparency. So 256 values. What do you mean with 9? Am I missing something? (I don't count the # you would write in code since it is not needed)
@Luna58295 ай бұрын
i forgot the transparency could also be in hex and not in decimal but still, with T / 255 being the transparency, you'd miss quite a few numbers
@LimoDieFlasche5 ай бұрын
@@Luna5829 You wouldn't miss anything visible to the human eye ^^ There's a reason why no one uses amounts above one byte (2 hex digits) per color
@henrispriet98124 ай бұрын
Instead of making an image compression format, bro made an image expansion format
@realrunnow Жыл бұрын
1:21 delusion on a next level
@joseph_gerald5 ай бұрын
Storing raw bytes is unheard of why not use a human readable 4bit representatipn instead (hex)?
@urisinger34125 ай бұрын
If people are gonna read your image file they will do it in a hex editor@@joseph_gerald
@bits360wastaken5 ай бұрын
@@joseph_gerald Not sure if stupid or trolling, your not going to give an image format the ability for someone to download it to their desktop, open up notepad, and read an images letters and reconstruct it in their mind at the cost of a 10-100x file size increase. And storing raw bytes is unheard of, look at the .png and .jpg format specifications for a clue on how deep it actually goes.
What's next? A coding font? Don't know if it can have more characters than UnifontEX.
@dr_s_e_x4 ай бұрын
Now make a .huh file that is an audio format
@smokedice4 ай бұрын
this but its just a .wav stored as a string
@HiloYT4 ай бұрын
and then .bruhuh for videos
@Koreley3 ай бұрын
@@HiloYT you could make a conlang out of this
@wouldyouskibidi3 ай бұрын
.huh3 then .huh4
@PJM2573 ай бұрын
judging by how badly he struggled with an image format, i don't think he's ready to try an audio format lol
@YoutubePizzer4 ай бұрын
avif is actually conceptually really cool: if you guys follow video formats, there’s been a big push to add AV1 support to everything because of how much of a huge leap in quality it is over essentially everything else. So much so, that if you encoded an image as a single frame of an AV1 video, it would be better quality than the other image formats available. So that’s exactly what it is. It makes a tonne of sense to use the same compression algorithms for both video and image and could in theory mean you could make hardware-accelerated images too. Very resource efficient, it would be great if we could just magically convert absolutely everything to use exclusively AVIF from now on
@neutronpcxt3724 ай бұрын
It's not. JXL is better.
@Yiss84 ай бұрын
JXL better
@pachinger4 ай бұрын
No it actually doesn't make a ton of sense to use the same compression for video and static images. Video codecs usually use the information of multiple frames to be more efficient. Just thinking about P/B/I-frames, chroma subsampling, etc.
@chonchjohnch3 ай бұрын
Hope alphabet sees this bro 🫶🏻
@waralo1913 ай бұрын
You should check out jpegxl, google is blocking it to maintain their monopoly. Since they own AVIF, and want it to become the standart
@KryptonTR4 ай бұрын
5:08 this song is a masterpiece
@FaZekiller-qe3uf5 ай бұрын
"Hex" is representing the color data in base sixteen whilst "RGB" (don't include the alpha channel, it's not a fair comparison) is representing it in base 10. It's the same exact data. There's no space "reduction" if you don't bloat it by storing it in ASCII, but you figured that out. Instead of bloating the file with line breaks you can just have a small header with the height and width.
@o_q5 ай бұрын
the interlacing on this video is making me crazy
@Aeduo5 ай бұрын
I think that might be part of the shitpost.
@FaceDevStuff5 ай бұрын
@@Aeduo nope, just plain stupidity on my part
@RockRemastered5 ай бұрын
I was thinking the exact same. Now the real question is, does it deinterlace ?
@foco56574 ай бұрын
@@RockRemastered probably not because youtube's VP9 compression screws with interlacing
@RockRemastered4 ай бұрын
@@foco5657 that's pretty right. Resizing is the worst thing. But downloading the h264 video would maybe work.
@per2632 Жыл бұрын
3:48 hex colors don't even have transparency and you used alpha type opaque for the png, so i'm surprised it showed anything other than complete white before you put a number there.
@thefirstuwu8874 Жыл бұрын
1:22 I'm not an expert, but one byte should be able to give 256 unique combinations, as it has 8 bits and one bit has 2 states - 2 combinations ^ 8 bits = 256, we even have a place for zero. (an int value usually weights 2-4 bytes, but I don't think we need its extra functionality for storing a number from 0 to 255). HEX uses 6 characters - each character is 1 byte, so 1 * 6 = 6. I think you can do both methods equivalent in bytes, but RGB is more intuitive. Edit: Oh, everyone already commented about this :p
@maxamillanman90505 ай бұрын
Low-key you explained better than my Prof tho
@sumlittleguy5 ай бұрын
You can make the image of color layers. For example: if it's just the background you determine the color of single pixel and then paste this pixel into different location instead of finding out the color of each pixel. Repeat that multiple times with doffirent colors and you get and image! It will be VERY light no matter how many pixels are there on X and Y coordinates while the image contains only 1 color.
@marcels.7074 Жыл бұрын
i wanted to make a JSON image format { "meta": { "size": "69x420" }, {"pos":[1,1], "color":"696969"} .... }
@FaceDevStuff Жыл бұрын
sounds hella inefficient, love it!
@SIMULATAN Жыл бұрын
Should call it "jif" for maximum confusion
@thefirstuwu8874 Жыл бұрын
@@SIMULATAN can call it "Jim" - Json IMage
@bambi186 Жыл бұрын
Absolute madman
@mgord95187 ай бұрын
This isn't too far off from plaintext images from the days of old like PPM. Sure, it's absurdly inefficient as far as size goes, but you can edit it with nothing but a text editor, easily understand the format just by looking at it and they're very rarely used for large images anyway
@devaraanimation4 ай бұрын
So this is what it feels like to be the guy who made the .webp file format
@sagnikkundu893 ай бұрын
Webp is good actually pls research
@devaraanimation3 ай бұрын
@@sagnikkundu89 so the joke went over your head. I was talking how it got the same degree of support as .webp.
@sagnikkundu893 ай бұрын
@@devaraanimation xDd. It wasn't obvious to me
@hedgehogsch.72705 ай бұрын
congrats! You just invented the netpbm file format 😊
@JamesR6243 ай бұрын
The who-what now?
@nathanpgratner25015 ай бұрын
I will be using .bruh images as the primary image type on my pc
@black360d4 ай бұрын
Same
@LambOfDemyelination4 ай бұрын
why store the hex as a literal string, a byte can be represented in one character (byte), instead you use two bytes to represent one byte??
@Fifasher2KАй бұрын
E in bruh is for efficiency.
@rka34775 ай бұрын
congrats you invented .bmp
@urisinger34125 ай бұрын
But 2x bigge
@kevenrodriguesmeirelles2241 Жыл бұрын
you're in my top 10 Dev KZbinrs, I love your projects!!
@Potencyfunction11 ай бұрын
I dont understand anything from it, I belive I am not for that. My skills and preferences are other, but is always good to have an eye on what is real and in trend with others.
@remboldt035 ай бұрын
You just made a worse bitmap. But I really like it. I love those indi projects
@ToxicMothBoi4 сағат бұрын
Finaly a good file format, the .bruh format🙏 Like god intended
@chickenspaceprogram18 күн бұрын
my man reinvented bitmap images, incredibly based
@Pcexperiments5 ай бұрын
you can use regedit ti automatically set how it opens, what icon it has and add it to `right click>new` menu
@KyriproShorts4 ай бұрын
What in the.bruh is this. Like what the.bruh
@Mats_Games4 ай бұрын
1:15 1080i detected
@TheBriti-Critic4 ай бұрын
I was waiting for the "This video is in the .bruh format" 🥵🤧🥵
@alword4 ай бұрын
.bruh4 video with .bruh3 sounds
@Ahnaf_Shariar4 ай бұрын
WOW, we are getting .bruh image file format before GTA 6.
@Sartfla3 ай бұрын
This is actually almost exactly what I wanted.
@GalaxinTM5 ай бұрын
avif still superior - transparency - better compression than jpeg - can be animated like gifs (comparable to video format quality)
@official-obama5 ай бұрын
according to wikipedia, it is open and royalty free too
@urisinger34125 ай бұрын
@@official-obamaPNG and jpeg both are
@nbvehbectw56404 ай бұрын
When you talked about storing RGBA in characters and not bytes, I was like.... bruh.
@kibbewater4 ай бұрын
Every channel in RGBA are only a byte long. You could fit an entire pixel in the space required for an int. Using string for for the color will double the size for each pixel
@xFifaEuro2714 ай бұрын
man i love this video.Bruh
@katamari_4 ай бұрын
thank you for defeating the monstrosity that is webp files
@deventerprises26404 ай бұрын
I think the issue with the tremendously high file sizes maybe because you are storing the ascii representation of the hex codes where in fact you can store hex codes as raw binary in the .Brun file
@poka26ev24 ай бұрын
This reminds me of the .stalin image I created 3 months ago to send sus photos in case the group chat gets leaked
@poonamshah3930Ай бұрын
At this rate bros about to make his own programming language to make these in....... oh no wait he already did it
@MaxCE4 ай бұрын
i always had an idea to detect text and store the characters used like as a font. then it would only store the position of the text. this would be useful for text over detailed backgrounds.
@BruhDOTcamАй бұрын
Interesting image file format.
@RealUniCat5 ай бұрын
that's EXACTLY what i wanted to do, except in javascript but i gave up because it's too hard and i wanted to do this in the current year 2024
@stgigamovement4 ай бұрын
BWTC32Key is a homemade file compression program with custom format written in Javascript.
@RealUniCat4 ай бұрын
@polonezzz stalker go away
@RealUniCat4 ай бұрын
@polonezzz I know
@kevinchandra2804 ай бұрын
Bro spent much hours, energies, and computer memories just for this "meme".
@ygypt5 ай бұрын
rgba and hex are not mutually exlusive. rgba means ur storing red green blue alpha, and hex just means ur encoding as base 16 instead of base 10. what you did was turn rgba into rgb, because you remove the 7th and 8th hex characters that represent the alpha
@snowbelldogАй бұрын
In addition, its format will be significantly larger, since rgba only requires 4 bytes (32 bits)... hex requires 2 bytes per color, which for rgb results in 6 bytes instead of 4 bytes, even without a alpha channel. With the hashtag it's even 7 bytes. I haven't looked any further, but he has no idea what he's doing 😅
@slavatar13373 ай бұрын
blazingly fast file format
@angelocore Жыл бұрын
Yo you can try to convert the hex back to binary instead writing it as text, it will make the file size less for sure
@okunamayanad24 күн бұрын
2:28 98% more means like around 1.8~1.9x 98x the size means 9700% more so there is a huge difference in what you say and what it says on the screen.
@MePeterNicholls4 ай бұрын
“I’m not an expert…” but does this
@glengal6490Ай бұрын
Though most of your videos are completely useless. It teaches me more than my college. My favorite youtuber so far. Love you brooooo
@KosinsStuff3 ай бұрын
It is pretty easy to make your own file format, you really just lack support for it since no one knows it exists or how it works
@HighFidelityFox4 ай бұрын
this is literally the XKCD comic about standards 😂
@randospawn74954 ай бұрын
You can say probably update the file format by telling it that if multiple pixels in a row are the same color that they could be simplified to the amount and then the pixel data, otherwise just the pixel data.
@insane.braindamage4 ай бұрын
i think the worst time of image file formats when you try to save them is "webm" or "webp"
@glintcoretheprotogen4 ай бұрын
i want you to make this more efficient than pngs so we can take over internet
@Stepanchicko5 ай бұрын
bro just made bmp with hex
@notkeehan4 ай бұрын
Beautifully chaotic
@2Deep.5 ай бұрын
We should make it more better.
@SKIENCE-X9PAT5 ай бұрын
the disguised file formats are relatable
@supercrazy500004 ай бұрын
your conversion algo can be useful to show images on oled displays
@THEAXOLOTTАй бұрын
Make this for your browser
@SirMato4 ай бұрын
3:21 interesting background song choice
@SSQMinky2 ай бұрын
18
@stgigamovement4 ай бұрын
BWTC32Key is a homemade compression format.
@JDoawp5 ай бұрын
Sooo, a ppm file but with hex instead of RGB? :p
@Wilsons-World5 ай бұрын
Interlaced! This looks great on my HD Trinitron.
@superlavahair15365 ай бұрын
they make hd crt tvs?
@Wilsons-World5 ай бұрын
@@superlavahair1536 Yes! They're also 16:9. My set has HDMI.
@foco56574 ай бұрын
i don't think so cuz youtube's compression fucks with interlacing artifacts
@Wilsons-World4 ай бұрын
@@foco5657 Good point. If s are blocking together 2 or more lines, that could totally ruin it.
@peterweston65883 ай бұрын
If you are storing the hex in ascii, you can zip it like any text file.
@fahrulrputra25894 ай бұрын
Ah yes, smartest rust programmer
@HGStyleOfficielАй бұрын
you didnt even bothered trying to compress it using lzma... i love that file format xddd
@Trayfellow4 ай бұрын
Close enough, welcome back carykh
@DJruslan4ic5 ай бұрын
Making a file format is easy (i guess). Engeneering how it actually stores, how to parse it, and other stuff is the hard part
@infiteri6030 Жыл бұрын
When i did this, i turned an png from 250kb to 10mb, the png took 1.2 s to load, the custom imagr took bout 0.02s. Nice
@MasonAlex-f9p4 ай бұрын
JFIF is a bitmap graphic that uses JPEG compression.
@Internat-doener-federationАй бұрын
0:25 that's wrong, jpg cam be transparent, but that's pretty uncommon.
@maddsua4 ай бұрын
bro reinvented bmp but with extra steps
@ebselectronics4 ай бұрын
Definitely using .bruh from now on
@Gardener-AI4 ай бұрын
This is somehow so captivating
@AlbySilly5 ай бұрын
3:47 My guess is that the rendering engine uses floating point numbers between 0-1 to display the graphics while the way the file is saved gives an integer of 0-255, try dividing the color value by 255
@manshenriksson4 ай бұрын
Yeah 1/256 ~= 0.004 lol
@Elitsa_274 ай бұрын
this is genius , evil , but genius , you can troll your friends to think the got a virus with one image☠
@guppy134 ай бұрын
this certainly is a bruh moment
@candybluebird4 ай бұрын
this dealt psychic damage :
@grady6318 ай бұрын
I did this once, but it had a really low color amount, probably around 8 colors, a locked really low resolution, and would have to be decoded by hand (it was binary numbers in .txt. REALLY inflexible format)
@STG245 ай бұрын
0:11 JFIF stands for JPEG File Interchange Format It is apparently better than JPG/JPEG and some windows 10 updates cna cause browsers to save in .jfif instead of .jpg or .jpeg
@YariCodes4 ай бұрын
the data of a .jfif file is the same as a .jpeg. it's just an alternate file extension, like .jpg to .jpeg.
@bukdays4 ай бұрын
brother 255 255 255 and #FFFFF take the same amount of bits. Both are three values of 2^8. A HEX 'digit' represent 16 possible values. 2 HEX values represent 16^2 possible values, that is 256 possible values. Just like the each of the RGB values. HEX is just numbers represented in base16
@ErCapoAlex4 ай бұрын
It’s also compression (ok both are compressed but differently)
@Tuntor6894 ай бұрын
hey i’ll take it over .webp
@codeman99-dev11 ай бұрын
2:32 That's not a percentage buddy. "100% more" means to double. Starting at 3mb and then adding 100% more would be 3mb + 3mb.
@fiddleabout4 ай бұрын
"buddy 🤓☝️"
@MaurOwO5 ай бұрын
imagine hiding images in the bruh format is s very goood idea
@AlanBurr255 ай бұрын
bro reinvented the bitmap image lmao
@lancemarchetti8673 Жыл бұрын
Nice work!
@TurquoiseFan234 ай бұрын
Oh, how I understand you, saying twelve instead of twenty...
@Akhulud4 ай бұрын
avif is actually the best file format
@m4rt_4 ай бұрын
jpeg is losy (you loose details) png is lossless (you keep all the details)
@gold46685 ай бұрын
3:24 OH MAN NOT RAM RANCH 💀
@nooneinpart4 ай бұрын
EIGHTEEN NAKED COWBOYS IN THE SHOWERS AT RAM RANCH
@Monkeymario.5 ай бұрын
0:33 avif if i remember right is a image format made by netflix i tihkn its made by netflix and avif is actualy really good at small file size while keapinb detail and its a lot better than jpeg abd has TRANSPARENCY :D also the video equivalant is webm which is made by google but it pretty much is the video equivalant of avif infact i think avif stole from webm right?
@nooneinpart4 ай бұрын
WebM came way before AVIF, but it is indeed also based on a video format like AVIF. WebM is based on VP8, the precursor to VP9 that KZbin currently uses. AVIF is based on AV1, the successor to VP9, and KZbin also uses that but only for popular videos because it's harder to encode and not that many devices currently support it compared to VP9. WebM and AVIF are basically just single-frame videos with no audio.
@ChrisGT4G4 ай бұрын
as a unity developer .jfif is my 1# opp when importing textures