12 ms·
That Time I Recreated Photoshop in C++
- chpatrick 2y agoPhotoshop has a million features though, a couple of image filters doesn't really count as recreating.
- ForTheKidz 2y agoStill very, very impressive for undergraduate work.
- JackFr 2y agoNailing the UI though is both very difficult and very important. In 2006, GIMP had a ton of features, but compared to Photoshop’s UI it was positively awful.
- brnt 2y agoPeople say this, but I didnt have such issues using Gimp compared to PS. They are different, that's it. The main thing I missed were stackable layers, but it was not a huge issue for me.
- phendrenad2 2y agoPeople say it because it's true for them. User experience is after all highly subjective. I think that the open-source world largely ignores this fact and pretends that if any one person says "good enough for me" then it's done.
- brnt 2y agoThe reserve is true too: if anyone says it's NOT good enough for them, then it's done. Actually check it out yourself, and give yourself some time to get used to it. If you care about not using PS of course.
- phendrenad2 2y ago> The reserve is true too: if anyone says it's NOT good enough for them, then it's done. "done" is defined by the creator of the software. If you're the creator of GIMP and it's suitable to your purposes, you can call it "done". But ostensibly, you made it free so that others could benefit from your efforts, and possibly even open-sourced it so that it would be accepted as safe to use. If that's the case, then something isn't "done" unless you're happy with the number of users who find it acceptable. I suspect that the creators of GIMP fall farther on the side of "suitable for our purposes" than on the side of "suitable for a large number of people's purposes" (however this may be unintentional and/or laziness or bad strategy on their part). > Actually check it out yourself, and give yourself some time to get used to it. Assuming I haven't is an extremely bizarre but inexplicably commonly-made mistake. Can you explain what leads to this mistake? > If you care about not using PS of course. You might not realize it, but this is a (perhaps unconscious) "no true Scottsman" fallacy. I take it you're not a creator of GIMP, so you don't have any authority to say what GIMP is intended for. So the idea that it's for people who "care about not using Photoshop" isn't a valid assertion. That's your opinion, but you should try to back it up with something. I see nothing on the website or the Wikipedia page that backs up the claim that it's for people who "care about not using Photoshop". It seems like it's for a much, much wider variety of people than that. Why gatekeep like that?
- Arainach 2y agoYou could replace that year with any year since the start of the GIMP project and it would still be true. It's the epitome of an open source project run by people who care about technical features, not real world users.
- pdntspa 2y agoPhotoshop had a pretty steep learning curve. "Users" had to spend some time getting to know the workflow. GIMP also has a steep learning curve. But these same "users" turn their noses at spending some time getting to know the workflow. As someone who is proficient in both, it is not hard to hit similar levels of productivity with GIMP as it is in Photoshop. I hate this attitude that people have with open source being "user hostile". Stop acting like spoiled children. Why must the software always come to you? Why cant you come to the software?
- Lord-Jobo 2y agoI think the biggest hurdle is that the shortcuts, ui, and workflows all feel different for the sake of being different. Why reinvent the wheel on it? I also hate this idea that we aren't allowed to give feedback on open source software. I get it, it's an incredibly thankless thing to do, but feedback of "having to relearn all of this stuff is unpleasant" isn't a problematic thing
- BizarroLand 2y agoIt's not that they CAN'T duplicate photoshop, it's that adobe would sue them out of existence if they did.
- m-schuetz 2y agoGimp is an entirely different league of user hostile. There are intuitive GUIs, unintuitive GUIs, and then there is GIMP.
- pdntspa 2y ago
- 77pt77 2y agoWhat's your opinion on Krita?
- badsectoracula 2y agoAs someone who has used a bunch of different image editing tools to make stuff (mainly for games, though i'm not an artist - i just need to make art :-P), Krita is fine. It has a bunch of weirdnesses (e.g. 2983942 commands to paste an image and all of them are kinda weird or missing in some way) and doesn't have as much features as GIMP but overall it is fine. Then again i found GIMP fine for a long time. Though my favorite UX (and features) of all time is Paint Shop Pro 7 which i find superior to Krita (i have it installed alongside Krita, GIMP and Kolourpaint -used for minor edits since it starts instantly- on my Linux setup via Wine). I used it since Win3.x days in the 90s until PSP8 was released and they screwed up the UI. I moved to GIMP some time later when i started using Linux and used that for years. Some years ago i found a boxed copy of PSP7 anniversary edition, reinstalled it and despite not using it for more than a decade i found it much easier than GIMP and i'm using that since, until i wanted to make a plugin to assist me with texture painting for 3D models. Making plugins for PSP7 was very cumbersome so i thought to try Krita instead (Krita has an MDI mode which i like when working with images) and ended up sticking with it since making the plugin was relatively easy[0]. I'll download Krita's source code and try to build it and add the features i miss from PSP7 at some point, KDE people do not seem very allergic to having options so i might be able to recreate the stuff and behavior i miss from PSP7 in Krita. In order of preference: 1. PSP7 2. Krita 3. Pixelmator (only under macOS of course and i only used an old version before App Store with the only alternative being GIMP running under XQuartz - i think GIMP got a native version later but i never used it) 4. GIMP (i found older versions easier to use, but every time they introduce a new major UI change i find it more awkward than before and now they're switching away from Gtk2 to Gtk3 -which i dislike the feel of- i decided to stick with Krita) 5?. Photoshop, maybe (i only used it a little in the past, always found it more cumbersome than GIMP or PSP, but it'll do if nothing else is available) [0] http://runtimeterror.com/tools/kritaview3d/ http://runtimeterror.com/tools/kritaview3d/
- numerosix 2y ago
- deleted 2y ago[deleted]
- ffaser5gxlsll 2y agoThis is completely subjective. As a student I used a ton of warez software in the 90ies. As such, I didn't have any real prejudice back then, and photoshop was the worst of the bunch from my perspective. I held that view for a long time, akin to how I consider autocad from autodesk one of the worst cads you could use despite being outrageously popular. I have no longer an opinion on it as I didn't use it for such a long time. I'm cycling between krita and GIMP, and GIMP's UI is just fine to me, in the same way I suppose a ton of designers-with-big-opinions are more familiar with photoshop due to all the training they did on it (and probably, _mostly_ on it).
- Nzen 2y agoSure, our expectations about UI patterns are path dependent. However, if a program isn't consistent internally [0] (rather than against the body of software we are familiar with), then the complaint is less subjective. [0] https://www.youtube.com/shorts/tFYkGyaXCw0 https://www.youtube.com/shorts/tFYkGyaXCw0 1 minute example of the procedure for editing a brush style
- BizarroLand 2y agoI get that whoever made and posted that terrible youtube short is annoyed, but if they had done a basic search online, specifically "how to edit a brush in gimp", the first result would have taken them to this page: https://docs.gimp.org/en/gimp-brush-dialog.html https://docs.gimp.org/en/gimp-brush-dialog.html Which says: It is a general rule that you cannot alter the resources that GIMP pre-installs for you: brushes, patterns, gradients, etc; only ones that you create yourself. It's okay to be annoyed when something doesn't work the way you want it to, but RTFM before you make a rant about it. It's the bare minimum.
- rcxdude 2y agoIt also did lack some important features. It still doesn't have proper support for different colorspaces, for example, and it's really not very on board with non-destructive editing in general.
- airstrike 2y agoI don't think we're meant to take "recreating" literally
- imoreno 2y agoIf you say "I made basic image editor" it doesn't sound as impressive, of course. Not surprising given how it opens with: >As I’m getting older I look back on all the things I’ve done as a creative developer, and I see so many cool projects! Such modesty...
- bufferoverflow 2y agoExactly. I think Photopea is the closest replication attempt, but even it misses many features.
- Findeton 2y ago[flagged]
- bschmidt44 2y ago[flagged]
- timnetworks 2y agoThe native keyboard shortcuts
- wink 2y agoIIRC it can't to ctrl-t (transform) because it opens a new tab. Gets me every time I use it. It's still a lovely piece of software.
- brulard 2y agoPhotopea is really nice. I was pleasantly surprise how many features they implemented to a free product. And even UI is not half bad. Kudos!
- etc-hosts 2y ago[flagged]
- busymom0 2y agoI have used Photopea for so many of my projects. I make apps and I use it for every app icon and App Store screenshots I have built. Also used it to make memes. Not having to install it on my Mac and just easily accessing it from browser is immensely helpful.
- urbandw311er 2y agoYep. Have it as a desktop icon and use it like a native app.
- mrandish 2y ago> "It followed a set of five rules to benefit the end user: no installers, no archives, no registry keys, no additional runtimes and a single executable file." Reading this sentence made me feel warm and happy. I get why the registry exists and things work the way they do today around the Windows software ecosystem but... damn, I really miss the days when most desktop software was more like this. These days I try to use portable installs whenever they're available, I just wish it was more common. The time, inconvenience and uncertainty I'll be able to fully restore all my preferences makes me actively avoid reinstalling Windows.
- dkga 2y agoThat simplicity and lightness of design also resonated with me. By the way, really cool read-off. The only thing I missed though was a deeper discussion of some of the challenges that the author alludes to in the beginning. But that’s just me being pedantic, the post is really nice and actually seems to be quite an impressive work.
- yndoendo 2y agoThat is one of the reasons I like GO language. Single executable, which makes tooling easier for others to use. My alternative method is using single executable packaged with NSIS that extracts everything to a temp directory before running. Sorry, Window Registry is a cornucopia of inconsistency and poor design. Gnome's Registry is well designed, comparatively. Key descriptions, value options with limitations and which is the default is a quality User Interface design. Just look at the Windows group policy to registry mappings, they are all over the place for the same logic layout with double negatives for keys.
- StefanBatory 2y agoAuthor of this article said he finished at Warsaw University of Technology - it was always considered to be one of the better ones here. That being said, what also strikes me is how different the thesis were back in times. I did mine recently in another university of technology in some bigger city (without wanting to dox myself that much) and 90% of our engineering theses were of very subpar quality; mine included.
- netsharc 2y agoIs it any different nowadays? AFAIK the goal isn't to advance the field, but to prove to the people giving you the Bachelor/Master's degree that you're able to create a "paper". Some theses stand out, but most of them are probably quite boring.
- StefanBatory 2y agoIt seems to me like their tasks were way heavier. For us, most of us did basic CRUDs with some implemention twist, and our papers were your standard: do a short theoretical introduction to the domain, make a few UML diagrams, explain how it works + some code examples, then testing.
- nailer 2y agoA friend from Phonegap got acquired by Adobe a decade ago and ported Photoshop to JavaScript for entertainment purposes immediately afterwards.
- nailer 2y agoNot complaining about downvotes but it seems a very odd thing for Hacker News to dislike. I would have imagined an internal story about a SW eng’s hack project would be interesting. Oh well.
- brulard 2y agoI didn't downvote, but I fully understand if anyone would. Your comment shows some serious lack of understanding of the complexity of software like photoshop and the complexity of porting software. We may believe that's what your friend told you, but we have troubles believing he really did that. Maybe exaggerated (a lot)?
- zarzavat 2y agoI assume by ported they mean compiled the C++ code to asm.js, now that as an Adobe employee they had access to the source code. Though this would still be a significant effort to get working.
- nailer 2y ago> Your comment shows some serious lack of understanding of the complexity of software like photoshop and the complexity of porting software. No. He had access to the source code as an Adobe employee, he's a well known low level JS engineer (hence making Phonegap) and there are LLVM to asm.js webassembly compilers.
- aa_is_op 2y agoDid it crash every 30 minutes? If not, how much are you selling it for?
- echelon 2y agoIt looks like you could have sold licenses to this or gone the startup route. Might have been slower and less glamorous than the gig you wound up getting, though. The UX looks simple and reasonable. Frankly better than Gimp. Really cool work!
- IshKebab 2y ago> It looks like you could have sold licenses to this Doubt it. There are too many good free options on this level, e.g. Krita.
- pessimizer 2y ago> Frankly better than Gimp. Only for people who think that things are good to the extent they "resemble Photoshop as much as possible." [direct quote] The Photoshop UI isn't ideal, it's fairly terrible (not as bad as Illustrator, but they're both just old), but people don't want to waste the huge effort it took to commit all of that to muscle memory. Cloning Photoshop for a thesis is wild, though. From a comic book reader to most of Photoshop in one leap.
- pacifika 2y agoThe things people make and not tell the world about. Glad it’s on GitHub, this is so impressive.
- dingdingdang 2y agoLet's get a direct link to this beauty in place: https://github.com/f055/fedit-image-editor https://github.com/f055/fedit-image-editor
- brulard 2y agoThere was a project called "pixel32" and later "Pixel Studio Pro" in the early 2000s. It looked really nice and was sold as early access. But became vaporware, people that paid became really pissed and the guy creating it turned from hero to villain quickly. https://discuss.haiku-os.org/t/pixel-studio-pro-in-past-called-pixel32-image-editor/10979 https://discuss.haiku-os.org/t/pixel-studio-pro-in-past-call...
- 90s_dev 2y ago> But I didn’t promote it. A few months later, I landed a C++ job. So in the end all that effort paid off. It's interesting how instinctively we know our hard work deserves to be paid off, but it's a shame how often open source developers put hard work into code that never really gets paid off, especially when it's widely used in production. I guess this explains why so often they look for reputation credits, or why NPM added the "maybe you should donate to the authors of these libs" feature, or why GitHub built in Patreon. There's got to be a better model than what we have now, that doesn't take advantage of naive but hard working young thinkers.
- theodric 2y agoSlick. Runs pretty well under Wine!
- DidYaWipe 2y ago"Straight from my previous project named Fiew I added a massive image library viewer. It really could quickly and easily scroll through massive amounts of pictures." Which is now infuriatingly lacking in the entire domain of image editors. Thumbnail browsers used to be an expected feature of image editors, even shareware ones. Now? Fat chance. Good luck even finding a stand-alone one. Recently one called FlowVision surfaced for Mac, and it's pretty much the lightweight browser that many of us have been looking for for years. It has some rough spots, but the developer is responsive to issues. https://github.com/netdcy/FlowVision https://github.com/netdcy/FlowVision
- DeathArrow 2y agoIn my experience, when developing software the hard part is implementing the actual logic, not the UI. In this case, replicating Photoshops UI seemed to be the hardest. Maybe using something like MFC, Qt, C++ Builder instead of straight Win API would have been easier. I remember a long time ago when I was in high-school and tried to implement a paint program under DOS, that had windows using Borland C++ and BGI graphics library. How hard should it be to implement windows, buttons and dialogs, I thought? After all, with the power of OOP and C++, every problem is easy to solve, I thought.
- iforgotpassword 2y agoI think most people will agree that ui is the hardest part for normal desktop software. Not getting any kind of ui going, but good ui. Consistency, how to group things, what goes where. If your app needs two inputs and a button then this won't be so much of an issue, but I've wrestled with qt in the past for more complex layouts that I hate it with a passion.
- waqas123987 2y ago"How can network monitoring improve the reliability and cost-efficiency of telecom services
- promoterr 2y agoumm, what's wrong with: https://affinity.serif.com/en-us/ https://affinity.serif.com/en-us/ ? Adobe is out-of-everything for decades..
- mjlee 2y agoIt was released 7 years after this project, and downloading someone else's image editor is not a typical route to submitting a final thesis for a degree.
- vijucat 2y agoThis is why I love Windows. There is a TON of small, open source software that serves a niche. Used to browse sourceforge.net and freshmeat (is that what it was called?) to find them!
- ArkimPhiri 2y agooh you did?
- deleted 2y ago[deleted]
- NotAnOtter 2y agoPhotoshop is a stretch.. that's more like MS paint in terms of feature parity.
- enigma101 2y agono you didn't