Loading server image using initWithData not working - iphone

I am using following code to display image from server in UIImageView.
NSURL *url = [NSURL URLWithString:#"http://www.gettyicons.com/free-icons/125/miscellaneous/png/256/apple_256.png"];
NSData *imageData =[[NSData alloc] initWithContentsOfURL:url];
imgLargePicture.image = [[UIImage alloc] initWithData:imageData];
I can see the picture in Saffari but the image is not rendered in the iPhone application. I searched a lot on net and even in stackoverflow, everywhere this same code is given to display image from server. But in my case somehow its not working.
Can anyone please help me with this?

I use the same code of you and i get the image, so please check the NSData and make sure that imageView IBOutlet should be properly connected. Same code is running fine at my side i have check in xcode.

Just tried that code in my app and it worked. You are not adding that "imgLargePicture" (I assume it's a UIImageView) as your UIViewController's view subview or not giving it a proper frame.
Try this in your -viewDidLoad: and see if it works
UIImageView *imgLargePicture = [[UIImageView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:imgLargePicture];
NSURL *url = [NSURL URLWithString:#"http://www.gettyicons.com/free-icons/125/miscellaneous/png/256/apple_256.png"];
NSData *imageData =[[NSData alloc] initWithContentsOfURL:url];
imgLargePicture.image = [[UIImage alloc] initWithData:imageData];

This was happening because of proxy server setup in the organization. It required me to provide user name & password to go through proxy. So this is fixed by implementing AuthenticationChallenge method where I passed the credentials.

Related

Append url to image path NSString?

I'm developing an iOS application consisting of a static sqlite database, series of tableviews and tab based detail view where the first view loaded in the detailview is a swipable imageView which loads a series of images.
I've got it working with this code where it looks for the image locally but I'd like to have it load the image from a URL or display a default image if no internet connection is available.
The images are named in the database as (for the example) image.jpg and I'd like all of them to load from the same URL directory (for the example) http://www.someurl.com/images/
Thank you
- (UIImage *) imageAtIndex:(NSUInteger)index {
Image *currentImage = (Image *) [self.images objectAtIndex:index];
NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:#"%#",[[currentImage filename] stringByDeletingPathExtension]] ofType:#"jpg"];
return [UIImage imageWithContentsOfFile:path];
}
The process for this is really very simple:
Try to download your image data using NSURLConnection
If successful, create a UIImage from the data
If either of the above fails, switch over to your placeholder/built-in image
Display the resulting image
I advise you have some sort of placeholder while the image is downloading, since that can take quite a while.
Don't bother with reachability; it's not 100% reliable, whereas actually trying the download is.
Avoid doing this on a background thread or queue. NSURLConnection is asynchronous out of the box to make this easier for you. There are a ton of third-party frameworks that try to simplify working with connections if you wish, though.
NSString *urlStr = [#"http://www.someurl.com/images/" stringByAppendingString:[currentImage filename]];
NSURL *url = [NSURL URLWithString:urlStr];
NSData *imageData = [NSData dataWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] initWithData:data];
Or something like that...
If the image is large or the internet connection is slow, the NSData initialization might take some time. Consider getting the images data in a background thread, or use some existing framework for that like SDWebImage

How to use UIactivityindicatorview while downloading an image from a url

In my app I have implemented a method to download a image from a URL and display it in a TableView cell. The code is working fine but I also need to implement two more functions,
1) a UIActivityIndicator to show that the image is being downloaded.
2) Check whether the image is already downloaded. Download only if the cell is empty.
Here is my code.
-(void) downloadImage
{
NSURL *url = [NSURL URLWithString:#"http://cdn.iphonehacks.com/wp-content/uploads/2012/09/iphone5-front-back.jpg"];
UIImage *image = [[UIImage alloc] initWithData: [NSData dataWithContentsOfURL:url]];
[dCellImageView setImage:image];
[image release];
}
Thanks.
Use [NSData dataWithContentsOfURL:URL options:NSDataReadingMapped error:&error]. It is a synchronized method. So probably start activityIndicator before sending the message, and check error, then stop activityIndicator. What do you mean by 'cell is empty'? Do you store image in disk or just memory. If former, use NSFileManager to check if file exists.
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
It'll show an indicator on the left of the status bar. You can also use MBProgressHUD if you like.
And if you want to check whether the image has downloaded already before downloading, you need to store a key in your Core Data or Property List.

UIImageView not displaying image in ipad

I am loading image from url coming from xml image not showing image
CGRect mywebframe=CGRectMake(0,60,700,300);
UIImageView*imageView=[[UIImageView alloc] initWithFrame:mywebframe];
NSString*imageurl=aBook.image;
imageurl=[imageurl stringByReplacingOccurenceOfString:#"\n" withString:#""];
imageurl=[imageurl stringByTrimmingCharacterInSet:[NSCharacterSet whitespaceCharacterSet]];
NSURL*url=[NSURL URLWithString:imageurl];
NSData*data=[[NSData alloc] initWithContentsOfURL:url];
UIImage*imagetemp=[[UIImage alloc] initWithData:data];
imageView.image=imagetemp;
[subView addSubView:imageView];
I bet your image (imagetemp) is nil.
Too many possibilities why it is nil. Try to log every variable before you use it and you'll find the bug quickly.
Firstly, you can use NSLog() to make sure your URL is correct.
Secondly, you really can not get the image that simple. I recommend a ImageView named EGOImageView You only need to give a place holding image and a URL, you can have the an asynchronized imageView.It also cache images for you automatically.

Image Swiping In Objective-C

I'm just a beginner to iphone development.
Recently i'm doing a project in which images need to be swiped. Could any one help me with it?
The images are stored in a server whose link is given.
I'm need it badly. So please help me
thank you
There are two ways.
You could either look at using a Paging Scroll View
Or, You could look at getting a series of UIImageViews with the correct images in each and then setting up a UISwipeGestureRecogniser for both directions. On the swipe's event handler you can adjust the x and y positions of the imageViews.
This is basic stuff. You should read some of the How-to's on Apple's developer website to help you with the base knowledge.
Edit:
Regarding the Internet images, the code can be adapted into the paging scroll view example:
NSString *path = #"http://merrimusings.mu.nu/archives/images/groundhog2.jpg";
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data cache:NO];
Load the strings from an NSMutableArray instead and you're good to go!
Use Three20 photo Album. Your problem will be solved.

How to load image from remote server on the UIImageView in iphone?

I am trying to load image from a remote server on the UIImageView in my application. Is it possible to load image from a remote server. I am using the following code
id path = #"http://upload.wikimedia.org/wikipedia/commons/c/c7/Sholay-Main_Male_Cast.jpg";
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
I found this code sippnet on the net, but I dont understand how do I load this image on the ImageView.
Can anyone tell me how to add image on the UIImageView.
Thanx in advance...
you got almost all the way there... now just
imageView.image = img;
note that using dataWithContentsOfURL will block your user interface while the image loads, which will work if you're loading small images at startup, but is generally a bad idea; look into NSURLConnection.