Two things to start - One, notice how far ahead my progress bar jumped! I have made a ton of progress, but have failed to keep my blog up to date with said progress, which leads into... Two, this will be a rather long blog post because of all the progress I've made. I have to catch you up on how things are going after my Spring Break to-do list, because, as always, some things have changed, some things have been added, and some things are being placed on a waitlist for the next student who gets this project. I'm also going to stray from my Gantt chart a little bit, so I'll explain that too.
I'll start by reviewing my to-do list from Spring Break, and go from there.
1. Turns out my hopes were mostly right - after I included the code to allow the user to crop the picture once taking or uploading, my memory issues disappeared! I discovered this cool little function that allows me to scale the bitmap to any size, so I can enlarge it for the purposes of drawing squares around the head, eyes, and nose, and then scale it down again for storage purposes. Very cool stuff.
2. The tiny and sideways picture issue was mostly resolved after cropping the picture. I was still getting a huge black border around the picture, and after going into the layout file, I discovered the width of the "canvas" was being set based on the parent object's width rather than the content's width. Easy fix there.
3. Memory issue gone! At least for now anyway. Right now I'm able to have 6 pictures loaded on the page at once, as shown in the screenshot below. These pictures are all hard-coded in, so it will be interesting to see if the memory issue comes back once I dynamically load the pictures from my database (which I am so close to getting to, and will talk about later).
4. I took four different sets of pictures and threw them into Publisher. After cropping and sizing each, I drew some squares and did some calculations by hand. I don't think my algorithm is precise enough to find matches, but I think it can definitely get me close, which is really all I need. I will be extremely happy if my app can narrow down the possibilities to a few dogs. The big test will be coding the algorithm into my app and actually testing it. I know you're all sitting on the edge of your seat waiting for that day. Don't worry, I'll definitely keep you posted, maybe even throwing a party if it ends up working (well).
Now to the things that have nothing to do with my Spring Break to-do list. I am officially talking to my database! Well, not me exactly, but my app is. I have successfully gotten people to create accounts and log in with those accounts. Super duper exciting. I don't have any log out capabilities yet, but I'm thinking that may be something that's left to the next person. On this same track, I can send a picture to, and pull a picture back from, the database. It's kind of tricky how it works - you have to encode the bitmap as a string, and then decode it when it comes back. Huge shoutout to Google for helping me out with that one. Finally, per a suggestion from Dr. McVey and Dr. Pankratz, I added the ability on the box drawing screen to feather the box after it's been drawn. That is to say that the user can use the arrow buttons I've provided to move the box around one pixel at a time. This could prove to be very important for my algorithm.
I think that's it for what I've accomplished in the last couple weeks. As far as changing up my Gantt chart, here's what I'm thinking. Since the algorithm has taken up a bit more time than I was initially thinking, and I'd really like to devote some serious time to documenting for the next student, I'm going to forego the notification mechanism for now. I have the UI in place for it, but not sure I have the time to make it work well. If I find some time, I'll give it a go, otherwise it shouldn't be difficult for the next person to pick up. Finally, like I just mentioned, I want to add a significant bar for documentation. Having come into a project in the middle of someone else's working on it, I know how frustrating it can be to get caught up to speed, and I want to avoid that as much as possible for the next lucky dog-finder.
Long story short - I'm really excited about how far the project has come, and excited for the few things I want to finish up yet. I also can't believe there are only two weeks until our presentations. Here's to a productive last stretch for me and my classmates!