If understand correctly, your name seems like pinyin and sounds like "hot water" :)
That aside, I do detect your great passion for coding. The coding bug is in you. Congratulations.
You have applied your efforts to an interesting domain: graphics 2D/3D.
Your selection of using ImageMagick is an excellent choice for a number of reasons:
PROS:
1)it is used in the animation industry(Disney, Toonboom)
2)it is a mature library with a sophistication C API along with a scriptable command-line tool. It's good to be aware of what a graphics api can do along with how one could automate all of it. Nothing else is out there like ImageMagick. It is peerless.
CONS:
The threading and parallelization found within is lacking to be polite. That implies it's not as fast as it could be when compared to the hardware capabilities available now. Keep in mind ImageMagick has so much legacy code behind it was written for os & hardware from decades ago. The rewrite be it rust/c/c++ to take advantage of the newer hardware/os capabilities would be a great effort and requires great comprehension in math, C, other OS'es and mastery of cross-compiling to other OS'es. None of it comes for free. That's why software developers extend it rather than optimize it. It's more cost-effective.
The image crate mentioned by others on reddit:
PROS:
1)Innovative. The image crate's courageous rust-lang author has created capabilities more performant than ImageMagick
CONS:
1)immature. image crate recently surfaced on the radar and it needs a wider user base with more feedback and merge requests
2)api is limited in capabilities when compared to ImageMagick
Sell your skills and get a job yesterday. Bottom line: Get paid for your work to support your existence, your skills are more valuable than your credentials. If companies recognize you have skills NOW, you can get paid now.
Offer your skills to the ImageMagick team to rewrite one C function at a time in rust. Write rust capabilites that expose the original C-ImageMagick API, but rewritten in rust to take advantage of new advances in async, storage, multi-tasking, multi-threading in rust.
Look at async, flume&crossbeam, rayon(par_chunk/zip), rs-gpu to help you achieve that. You could be delving into AMD's ROCm/DirectGMA/DirectStorage and NVidia's Cuda/GPUDirect to help with that.
You could go the other route...Offer your skills to the image crate team to help extend it the way they want it to go which might not be towards interoperability with ImageMagick, but a new innovative cli altogether. Same rust tech in the back end are required however. Math is always important here too, but you seem good at that so you don't need to be shy there either.
If ever you wish to move on from your graphics passion, you might want to redirect your emotional energies and rust-lang efforts towards contributing to redox-os rust-lang operating system. That will certainly pay off for you. You have a great amount of energy to invest in this. Direct your energies into something where others will value your efforts and pay you for it. I think System76 would love to have you. You're an intelligent and passionate coder you could contribute to PopOs(current) and Redox-os(forward-looking).
All those skills are transferrable, if you decide to move on to other stuff in other domains like networking, machine learning, cyberdefense.
Hello Ruoshui,
If understand correctly, your name seems like pinyin and sounds like "hot water" :)
That aside, I do detect your great passion for coding. The coding bug is in you. Congratulations.
You have applied your efforts to an interesting domain: graphics 2D/3D.
Your selection of using ImageMagick is an excellent choice for a number of reasons: PROS: 1)it is used in the animation industry(Disney, Toonboom) 2)it is a mature library with a sophistication C API along with a scriptable command-line tool. It's good to be aware of what a graphics api can do along with how one could automate all of it. Nothing else is out there like ImageMagick. It is peerless. CONS: The threading and parallelization found within is lacking to be polite. That implies it's not as fast as it could be when compared to the hardware capabilities available now. Keep in mind ImageMagick has so much legacy code behind it was written for os & hardware from decades ago. The rewrite be it rust/c/c++ to take advantage of the newer hardware/os capabilities would be a great effort and requires great comprehension in math, C, other OS'es and mastery of cross-compiling to other OS'es. None of it comes for free. That's why software developers extend it rather than optimize it. It's more cost-effective.
The image crate mentioned by others on reddit: PROS: 1)Innovative. The image crate's courageous rust-lang author has created capabilities more performant than ImageMagick
CONS: 1)immature. image crate recently surfaced on the radar and it needs a wider user base with more feedback and merge requests 2)api is limited in capabilities when compared to ImageMagick
Sell your skills and get a job yesterday. Bottom line: Get paid for your work to support your existence, your skills are more valuable than your credentials. If companies recognize you have skills NOW, you can get paid now.
Offer your skills to the ImageMagick team to rewrite one C function at a time in rust. Write rust capabilites that expose the original C-ImageMagick API, but rewritten in rust to take advantage of new advances in async, storage, multi-tasking, multi-threading in rust.
Look at async, flume&crossbeam, rayon(par_chunk/zip), rs-gpu to help you achieve that. You could be delving into AMD's ROCm/DirectGMA/DirectStorage and NVidia's Cuda/GPUDirect to help with that.
You could go the other route...Offer your skills to the image crate team to help extend it the way they want it to go which might not be towards interoperability with ImageMagick, but a new innovative cli altogether. Same rust tech in the back end are required however. Math is always important here too, but you seem good at that so you don't need to be shy there either.
If ever you wish to move on from your graphics passion, you might want to redirect your emotional energies and rust-lang efforts towards contributing to redox-os rust-lang operating system. That will certainly pay off for you. You have a great amount of energy to invest in this. Direct your energies into something where others will value your efforts and pay you for it. I think System76 would love to have you. You're an intelligent and passionate coder you could contribute to PopOs(current) and Redox-os(forward-looking).
All those skills are transferrable, if you decide to move on to other stuff in other domains like networking, machine learning, cyberdefense.