How to remove background of image during runtime in iPhone sdk - iphone

I have an image in UIImageView. Those images are generally of clothes or accessories captured from camera on plain backgrounds. Now, I have to give a functionality to users so that they can remove the background from the actual image which is being shown. Something like what is shown in the picture here. As the slider will move the background will start getting removed more and more. Something like the 'instant alpha' brush in the Preview application available in Mac OS X. I wish to do this in native iPhone app.
I know I'll require some algorithm for image processing to do this. Does anyone have anything helpful which I can refer or use in order to get this done? Thank you so much in advance.

You can render your image in some context, than change all points you need to the color you want, get image from your context and display it again.
This link should help you to get color of a pixel in context.
Note, that this method is too slow, so I think you should remember all positions of pixels you
need to change to make your app a bit faster.

Related

iphone app that recognises colour

Can you give me a starter point for creating an iphone app that recognises colour. I have seen this app http://www.windowsphone.com/en-US/apps/2f83a363-2fce-4107-8394-27feb3645fff and it would be excellent to be able to find out the technique used for the colour recognition part. Thanks.
Probably the easiest way would be to display a UIImagePickerController with it's source type set to UIImagePickerControllerSourceTypeCamera. Once the user snaps a photo, you can then get a CGImage of the photo taken, and look for the color info that way. This question might help you with figuring out the color info you want.

How to create background image for site

I have just made background image for my web-site. But I'm confused - if user have resolution no similar mine, then he will see wrong image right? How can I fix this problem and what resolution is normal for browser?
They will see the correct image, but it will repeat itself.
You have two options:
Create an image, which looks nice when it's repeated. Then you just have to exchange the image.
otherwise you have to disable image repeating, so that the image is just displayed once.
see: http://www.w3schools.com/cssref/pr_background-repeat.asp
It usually looks nice if you define an appropriate background-color after the image ends.
Otherwise there are more advanced ways for full scale background images: http://css-tricks.com/3458-perfect-full-page-background-image/
The "normal" Screen resolution on webpages range from the Smartphone screen (320x480) to 30" screens (2.560 x 1.600). Those are the both (not so uncommon!) extremes. The average is between 1024x768 and 1920x1200.

Question about UIWindow backgrounds

I have written a powerful trig calculator, but I want to use the "linen" background. I have been able to implement this in interface builder, but I get a 'yellow triangle' warning in Xcode that says it is not compatible with something like iOS 3.2 and earlier. And I'm afraid Apple will reject it if says that. I want to know the code that I can use to change both the text color (from black to white) and the background texture (from blue and white vertical stripes to the darker linen). I already know a few ways to test and apply info about the users current firmware version, but I'm always open to suggestions. Any help will be GREATLY APPRECIATED!!! I have just read the first 3 answers and duh I feel kinda stupid, that makes sense. But I would also like to know how to do this and make it like a user configurable "setting" just to make it feel nicer :-) thanks
The linen background is a tiling UIColor. You can create a tile color programmatically and apply this tiled background anywhere you would set a backgroundColor. Even on UIWindow.
If you want to maintain compatibility to old iOS versions, replace the built in background "color" (such as linen) with an UIImageView showing an image of it.
Write a simple app, filling the entire screen with the background, make a screenshot, then place it behind all other UI elements.

Image with gestures - phonegap

I'm making an application who needs to display a map, contained in a large image file (png). The user must be able to zoom in/out the image and drag it in order to scroll the image with touch gestures.
I'm not sure that you get it, but i want to display a single image as it would be displayed by the "Photos" iphone application.
I would like some hints about the best way to do it with those gesture and with a navigation header in order to leave the image view.
Thanks in advance if you can give me any help about this issue because I did not find any clue on the phonegap doc.
/ouss
Why don't you use the built inn components for this?
Sounds like you need to wrap an ImageView inside a ScrollView and a HorizontalScrollView, then rescale the image by handling onTouch-events.
Take a look at the MapKitPlug plugin:
https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/MapKitPlug
Good Luck!
I would use http://cubiq.org/iscroll-4 which has some really slick image zoom going on. You can also start loading new images after certain zoom levels for finer grains of quality.
I would suggest Child Browser phonegap plugIn.
It is very simple and easy to implement.
It supports loading page from a url as well as you can show any kind of images.(png, jpg, jpeg, bmp and gif)

How to create facebook wall posts and add retina version of picture

We're using the facebook graph API http://developers.facebook.com/docs/reference/api/post/ and adding the picture parameter. Our picture is a 30x30 pixel image, which is exactly the size we want for the facebook web version. However, the image will be pixelated when using the FB mobile app on an iPhone4 (retina display).
Is there any way to serve a 60x60 high resolution image, but render it always at 30x30 for facebook wall posts?
Well.. as of this moment, here is what I have found out, and offer a 'solution' that has worked for me based on the time i've had to test & play with this concept. For all the readers out there, who need a quick answer to the question, i don't have the exact solution to the question, but…. Essentially, your 30x30 image is being scaled to 90x90. The 60x60 image is being scaled to 90x90. And I can not find a way to go around this.
Below is what I have tried. Feel free to add input.
Take your feed image, and stroke a 2-5px black line around the frame of the image.
Load up your app, initiate a wall feed on the device. With the image present, take a screenshot. Mail yourself the image. Open it up in Photoshop (or photo editing program). Use a Marquee tool to outline the image. Cut it out of the screenshot and paste it as a new image. What size is it? 90x90, right? (and obviously 180x180 if image is retina)
Create a 90x 90 image. Copy your original 30x30 image and paste it anywhere you want within the new 90x90 images' frame. Upload it to the URL parameter's location. Re-run your app. By re-running it, i mean you have to shut it down completely, it appears as though the SDK is cacheing the image upon first launch of the feed and you can clear that cache by closing the app completely, and rerunning it. When you do, you will see significant improvements with the look of the image. It may not be a retina image, but it at least won't be 'fuzzy ugly'. At this point, it boils down to how nice of illustrative lines that where done in the design process to remove the aliasing effect produced from the conversion to a raster graphic. As well, i'm not sure if a variation of resampling method will produce even better results.
Some things i've tried:
I've also saved it as a png file with no transparency : 144ppi at 90 x 90 size. In other words, save your 90x90 image with a higher resolution (pixels per inch). Remember to not constrain proportions as you image resize. And note that If you are using adobe products, i.e. photoshop ) - don't save for web, just use 'save as…', as this will retain the ppi you specified. Although, i don't believe i see much of a difference in the quality which this is displayed going this route, and best to try to keep the file size down as this will increase the overall image size by about 500% or more.
I've tried variations of hosting the image twice the size (180x180) within the same hosted folder and naming it image#2x.png & image-large.png <--(just for the heck of it). This is not really solving the problem either.
Some other things I have not tried:
Monitoring your web server traffic, and any "not found" errors to a resource to see if FB is trying to access an a potential alternate resource when grabbing your image for display, the wall feed box that comes up is a webview. Meaning web graphics. (It's FB's web page…meaning their rules, and i doubt the pages' source is available to dabble with within the SDK.. so!…
Look at the HTML of the feed itself with safari browser:
The inspection of the HTML within the final resulting image that is posted on my FB wall I can see this….
<img class="img" src="http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=153675474666495&v=1&size=z&cksum=773bba91f6146b2463eed0a0bb77dc42&src=http%3A%2F%2Fwww.thumbwizards.com%2Fspeakinapps%2Fgraphics%2Fboxed%2Faussie.png" alt="">
I am wondering:
Within HTML5 isn't there a mechanism to provide a toolkit type of javascript to display retina graphics from a web page?
Would it be possible to have that code run when grabbing the url to the image (in meaning, the url of the image would be acting as a pointer to the code.? I haven't tried playing with this, since my logic tells me that per the url above that FB is essentially taking control over the image at this point. I have noticed (and not waited long enough to see) that the image is apparently cached and posting to the wall with a new image, sometimes results in the older image still being used. (and yes, i've cleared my browser cache)… perhaps simply cached in another location..
If there is another parameter for the image type, that is not published, I have not stumbled across any yet.
Can anyone figure out if through source of:
[http://platform.ak.fbcdn.net/www/app_full_proxy.php] if this php file is part of an available image processor out there we can access to view what could be done?
Can anyone mention an app that uses a retina graphic in their feed post?
Just thoughts really, I've decided to not really give a crop, and if
you've made it this far. Thanks for tuning in. ..So, Sulf, your 30x30 is being scaled to 90x90. making it UGLY!.
Good luck.. If you figure anything else out, let me know!
Mark
apple specify that if you want to add the retina effect for your ios app then the images you are using in this format -i.e
sampleImag.png- 57*57(size) , 163 (DPI)
sampleImag#2x.png - 114*114(size),326 (DPI) when you use these specific graphic images you will get your app is showing retina effect in iphone 4 and above generation.
Just point your code to a larger scaled image and Facebook will take care of the rest.