Search Results

Search found 4585 results on 184 pages for 'apple 2'.

Page 94/184 | < Previous Page | 90 91 92 93 94 95 96 97 98 99 100 101  | Next Page >

  • 300.000 nouveaux appareils Android sont activés chaque jour, la fulgurante ascension continue

    300.000 nouveaux appareils Android sont activés chaque jour, la fulgurante ascension continue Mise à jour du 09.12.2010 par Katleen Et c'est une preuve de plus de la fulgurante ascension d'Android. L'OS mobile de Google ne cesse d'étendre son territoire, et c'est aujourd'hui un membre de son équipe de développement qui a révélé une statistique époustouflante : le système est désormais installé sur 300.000 nouveaux appareils, chaque jour ! Les chiffres n'étaient "que" de 200.000 par jour cet été. Une progression rapide et fulgurante, qui, de plus, n'a pas l'air partir pour faiblir. En septembre 2010, Apple avait de son côté annoncé enregistrer 230.000 activations journ...

    Read the article

  • Les offres TV des firmes informatiques ont-elles leur place sur le marché ? Google repousse la sienne suite aux mauvaises critiques

    Les offres TV des firmes informatiques ont-elles leur place sur le marché ? Google repousse la sienne suite aux mauvaises critiques Mise à jour du 20.12.2010 par Katleen La fièvre des box TV semblait avoir contaminé les plus grandes firmes informatiques : d'abord Apple, puis Google et Microsoft. Mais Mountain View vient d'annoncer ses réticences à poursuivre dans cette voie. La firme, qui devait lancer ses offres télévisuelles dans quelques jours lors du "Consumer Eclectronics Show", a décidé de les repousser. Pourquoi un tel revirement ? Suite aux premières critiques des professionnels qui ont pu tester le produit en avant première. Les retours ont été plutôt négatifs, quali...

    Read the article

  • Comment les firmes répartissent-elles leurs dépenses pour les composants de leurs smartphones ? Un tableau interactif le montre

    Comment les firmes répartissent-elles leurs dépenses pour les composants de leurs smartphones ? Un tableau interactif le montre La firme américaine Tableau Software propose un tableau interactif qui permet d'en savoir plus sur les dépenses des firmes pour la fabrication de leurs smartphones. Si le prix moyen de la conception est assez semblable d'un modèle à l'autre, en revanche la façon dont les entreprises répartissent leurs dépenses varie de l'un à l'autre, et en fonction des composants. Par exemple, Apple fait les plus grosses dépenses pour les coques de ses téléphones ; Nokia ne compte pas lorsqu'il s'agit d'objectif caméra, etc. Source :

    Read the article

  • Just updated, after reboot my computer won't start up again

    - by Alex
    I have a macbook that I use on occasion which dual boots Ubuntu and OSX (It has rEFIt installed). I turned it on for the first time in a while and it needed a bunch of updates. So I let it run, and restarted it when it asked. When it was booting up, it got stuck at a light blue screen. There was nothing on the screen to indicate that it was doing anything - I figured it just got stuck or something, so I turned it off and back on. (I suspect now it was actually working, but I had no indication that it hadn't just frozen) Now I can't access either OSX or my Ubuntu partition. When I choose ubuntu on the rEFIt menu, it shows "No bootable device -- insert book disk and press key". If I try to start up OSX is looks like it starts loading, but instead of an apple logo there's a crossed out circle icon.

    Read the article

  • Why was Objective-C popularity so sudden on TIOBE index?

    - by l46kok
    I'd like to ask a question that is pretty similar to the one being asked here, but for Objective-C. According to TIOBE rankings, the rise of popularity of Objective-C is unprecedented. This is obviously tied to the popularity of Apple products, but I feel like this might be a hasty conclusion to make since it doesn't really explain the stagnant growth of Java (1. There are way more Android O/S devices distributed worldwide, 2. Java is used in virtually every platform one can imagine) Now I haven't programmed in Objective-C at all, but I'd like to ask if there are any unique features or advantages about the language itself compared to other prevalent languages such as C++, Java, C#, Python etc. What are some other factors that contributed into the rise of Objective-C in this short span of time?

    Read the article

  • OpenJDK pour MacOS : le projet a débuté, les premiers codes sont disponibles

    OpenJDK pour MacOS : le projet a débuté Les premiers codes sont disponibles Mise à jour du 13/01/2011 par Idelways Les premiers codes de la version pour MacOS X du Java Development Kit 7 (dans le cadre du projet OpenJDK) sont disponibles. Il s'agit du port d'un code initial destiné à BSD (UNIX). Ce code est téléchargeable sur le site de OpenJDK, dans le projet « MacOS X Port ». Une mailing-list et un wiki ont également été ajouté, et bientôt un gestionnaire de rapports de bugs Pour mémoire, Apple avait provoqué un vent de panique dans la communauté Java en déclarant à la mi-novembre 2010 qu'il ne comptait...

    Read the article

  • iOS ou Android, quelle est la plate-forme la plus sécurisée ? Symantec penche en faveur d'iOS malgré ses failles 10 fois plus nombreuses

    iOS ou Android, quelle est la plate-forme mobile la plus sécurisée ? Symantec penche en faveur d'iOS en dépit de ses vulnérabilités 10 fois plus nombreuses La sécurité des plateformes mobiles est certes meilleure que celle des ordinateurs, mais elle reste insuffisante d'après le nouveau rapport de Symantec intitulé « regard sur la sécurité des périphériques mobiles : analyse des approches de sécurités employées sur Apple iOS et Google Android ». Ce document de 23 pages affirme sans surprise que les périphériques mobiles offrent formellement plus de sécurité que les plateformes Desktop, pour peu que l'on ne transgresse pas les lignes de conduite imposées par les éditeurs de ...

    Read the article

  • Avec 1.5 millions d'unités écoulées, les Windows Phone 7 sont "les meilleurs du marché", Ballmer également satisfait de Bing

    1.5 millions de windows phone 7 HTC écoulés annonce Steve Ballmer le 17/01/2011 Selon son PDG Steve Ballmer, qui semble officialiser des propos tenus en interne par Achim Berg fin décembre 2010 (lire news précédente), le Windows Phone 7 HTC est "le meilleur sur le marché". Le dirigeant de Microsoft est apparu très optimiste quant à la réussite des mobiles et des décisions techniques de son entreprise, malgré une série de départs et la concurrence rude sur le marché des Smartphones avec Apple. Ballmer a parlé des jeux et des moteurs de recherche comme d'une réussite, notamment avec la Xbox qui selon lui n'est pas seulement une ...

    Read the article

  • How do I make music sync with iOS 5 in Ubuntu 11.10 work?

    - by Alex Cristian
    I've tried several tutorials on the internet but nothing works. This is not a duplicate, it is true that there are several of them about ios5 but not one of them asks specifically about music syncing or ubuntu oneiric ocelot... I'm just so angry at Apple because of this, my iPod classic syncs just fine with Banshee but my iPad 2 won't, because they suddenly decided to change how uploading music to their app works in ios5. I looked around and saw that an unstable libimobiledevice-1.1.2. was available, but I can't manage to install it! It's a nightmare, any help would be greatly appreciated.

    Read the article

  • OpenGL-ES: clearing the alpha of the FrameBufferObject

    - by MrDatabase
    This question is a follow-up to Texture artifacts on iPad How does one "clear the alpha of the render texture frameBufferObject"? I've searched around here, StackOverflow and various search engines but no luck. I've tried a few things... for example calling GlClear(GL_COLOR_BUFFER_BIT) at the beginning of my render loop... but it doesn't seem to make a difference. Any help is appreciated since I'm still new to OpenGL. Cheers! p.s. I read on SO and in Apple's documentation that GlClear should always be called at the beginning of the renderLoop. Agree? Disagree? Here's where I read this: http://stackoverflow.com/questions/2538662/how-does-glclear-improve-performance

    Read the article

  • Resources for understanding iOS architecture [closed]

    - by BlackJack
    I recently finished reading Randall Hyde's excellent book Write Great Code: Volume 1: Understanding the Machine, and I have a much better knowledge of what's going on under the hood now. I want to start making iPhone apps, and there are lots of guides for that. Embracing my inner Hyde, however, I want to first learn about the iOS system architecture. Apple has a really good overview here: iOS Technology Overview Before I start, I wanted to know if there were any other good resources for understanding iOS architecture and using that knowledge for iPhone programming. Thanks.

    Read the article

  • What language, or language feature, do you wish made it to the mainstream?

    - by Macneil
    Some languages in the past have been influential without ever reaching wide adoption. For example, many languages owe much to the design of Algol 68, even though few compilers were ever written for it. The Dylan language was killed by Apple but had a clean and interesting design. What other programming languages had cool ideas but-- for whatever reasons-- didn't make it to the mainstream? Is there an interesting language feature that you wish your main language had? Is there a feature ahead of its time that we'll soon see used?

    Read the article

  • Why Beta versions have so many bugs?

    - by Eugene
    When I worked in Microsoft on MSE antivirus, we had several stages of pre-release: Alpha, Beta, RC. The biggest difference between these stages were bug fixes. Each time we fixed more bugs, and usually updated some minor features. Apple works in the same way. Look here: http://www.techrepublic.com/article/pro-tip-how-to-create-a-bootable-usb-installer-for-os-x-yosemite/ They released a beta of Yosemite OS, but the beta is full of bugs. Why do these big companies work like this? Isn't it better to release a beta version that was tested very thoroughly but one that just doesn't provide all the features that the final version will provide?

    Read the article

  • Eight Geektacular Christmas Projects for Your Day Off

    - by Jason Fitzpatrick
    It’s Christmas Eve and if you’re lucky you’ve got some time off ahead of you. Let’s put that time to good use with some holiday-centered geeking out. Come on in for LEGO ornaments, Darth Vader snow flakes, and Christmas light hacks galore. Latest Features How-To Geek ETC How to Use the Avira Rescue CD to Clean Your Infected PC The Complete List of iPad Tips, Tricks, and Tutorials Is Your Desktop Printer More Expensive Than Printing Services? 20 OS X Keyboard Shortcuts You Might Not Know HTG Explains: Which Linux File System Should You Choose? HTG Explains: Why Does Photo Paper Improve Print Quality? An Alternate Star Wars Christmas Special [Video] Sunset in a Tropical Paradise Wallpaper Natural Wood Grain Icons for Your Desktop and App Launcher Docks My Blackberry Is Not Working! The Apple Too?! [Funny Video] Hidden Tracks Your Stolen Mac; Free Until End of January Why the Other Checkout Line Always Moves Faster

    Read the article

  • C Problem with Compiler?

    - by Solomon081
    I just started learning C, and wrote my hello world program: #include <stdio.h> main() { printf("Hello World"); return 0; } When I run the code, I get a really long error: Apple Mach-O Linker (id) Error Ld /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj normal x86_64 cd /Users/Solomon/Desktop/C/CProj setenv MACOSX_DEPLOYMENT_TARGET 10.7 /Developer/usr/bin/clang -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -F/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -filelist /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/CProj.LinkFileList -mmacosx-version-min=10.7 -o /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj ld: duplicate symbol _main in /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/helloworld.o and /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/main.o for architecture x86_64 Command /Developer/usr/bin/clang failed with exit code 1 I am running xCode Should I reinstall DevTools?

    Read the article

  • Need Help Changing Owner of External HArd Drive

    - by Thomas Ballew
    My understanding of code is about zero. I can open a terminal window, and type commands that are given to me, but that's about it. If someone can help me with this question, and explain at a level I'm likely to understand, thanks. If not, thanks anyway. I have an external hard drive with two partitions. I bought this drive when my operating system was Apple, 10.5 or so, and it was formatted as HFS+ with that system. Now, connecting the HD to my Linux system, I can read files, but I have about 1.5 TB of space that I can't use, because I am not the owner of the file, so can't write to the HD. Short of reformatting the HD, is there a way for me to set the permissions for the HD so I can write to it? Again, thank you.

    Read the article

  • L'ancien PDG de Sun dit « ce qu'il ne pouvait pas dire » sur les brevets logiciels, Steve Jobs et Bi

    L'ancien PDG de Sun dit "ce qu'il ne pouvait pas dire" Et s'en prend au brevet logiciel, à Steve Jobs et à Bill Gates Jonathan Schwartz, l'ancien PDG de Sun Microsystems qui vient juste de démissionner, a visiblement envie de faire parler lui. Et il s'y prend plutôt bien. Dans son blog, "Ce que je ne pouvais pas dire...", il vient en effet de publier un billet fleuve intitulé "Les bons artistes copient, les grands volent". Un titre doux-amère qui évoque directement Steve Jobs et Bill Gates. Les récentes sorties plutôt virulentes du PDG d'Apple contre Adobe et les poursuites qu'il lance contre HTC et Nokia n...

    Read the article

  • Les tablettes avec stylet ont-elles un avenir ? Bill Gates y croit

    Mise à jour du 05.05.2010 par Katleen Les tablettes avec stylet ont-elles un avenir ? Comme le défend Bill Gates Les tablettes, qu'on les aime ou non, sont le sujet dont tout le monde parle en ce moment. Aussi était-il naturel que, lors d'une interview télévisée, Bill Gates soit questionné à ce sujet. L'homme, toujours membre du conseil d'administration de Microsoft, a été mis face au succès immense remporté par l'iPad d'Apple qu'il estime être "un excellent travail", gadget auquel on a comparé Courier. L'annonce fracassante il y a quelques jours de l'annulation du projet avait fait grand bruit. Bill Gates est revenu sur ce fait, pour en nuancer l'impact négatif. Courier éta...

    Read the article

  • Les grands groupes medias refusent de lâcher le Flash pour être présents sur l'iPad, selon le New Yo

    Mise à jour du 28/05/10 Les grands groupes medias refusent de lâcher le Flash Pour être présents sur l'iPad, d'après le New York Post Les exigences de Steve Jobs passent mal auprès des grands groupes medias producteurs de contenus. D'après le New York Post, nombreux sont ceux parmi ces derniers à avoir opposé un acte de non recevoir à la demande d'Apple d'utiliser d'autres technologies que celle d'Adobe. Pour eux, une telle démarche serait bien trop coûteuse. Surtout, elle ne vaudrait pas la peine d'être entamée compte tenu du fait que le Flash est actuellement la technologie dominante sur Internet. Etre ...

    Read the article

  • Microsoft annule son projet de tablette Courier, l'objet ne sera pas mis en production

    Mise à jour du 30.04.2010 par Katleen Microsoft annule son projet de tablette Courier, l'objet ne sera pas mis en production L'information est courte, claire et concise. Microsoft vient à la fois de confirmer l'existence d'une tablette Courier, et d'en annoncer la mort. Voici donc un rival de moins pour l'iPad d'Apple. C'est Frank Shaw, chargé de communication pour Microsoft, qui a fait -il y a à peine quelques heures- la déclaration suivante aux médias américains : «A tout moment, de nouvelles idées sont expérimentées, testées et incubées. C'est dans l'ADN de Microsoft. Le projet «Courier» en est un exemple. Sa technologie sera évaluée pour un usage futur, mais nous ne prévoyon...

    Read the article

  • What You Said: Tools and Tricks for Scoring Great Deals Online

    - by Jason Fitzpatrick
    Earlier this week we asked you to share your favorite tools and tips for scoring great deals online. Now we’re back to showcase your money-saving techniques. Our Ask the Readers series gives you, the awesome How-To Geek reader, a chance to share your tips, trick, and technological know-how with your fellow readers right on the front page. Every week we ask a question and every week we round up your tips to share. This week we’re taking a look at your tips and tricks from What Tools Do You Use to Score Great Deals Online.HTG Explains: What Are Character Encodings and How Do They Differ?How To Make Disposable Sleeves for Your In-Ear MonitorsMacs Don’t Make You Creative! So Why Do Artists Really Love Apple?

    Read the article

  • MonoGame; reliable enough to be accepted on iOS, Win 8 and Android stores?

    - by Serguei Fedorov
    I love XNA; it simplifies rendering code to where I don't have to deal with it, it runs on C# and has very fairly large community and documentation. I would love to be able to use it for games across many platforms. However, I am a little bit concerned about how well it will be met by platform owners; Apple has very tight rules about code base but Android does not. Microsoft's new Windows 8 platforms seems to be pretty lenient but I am not sure oh how they would respond to an XNA project being pushed to the app store (given they suddenly decided to dump it and force developers to use C++/Direct3D). So the bottom line is; is it safe to invest time and energy into a project that runs on MonoGame? In the end, is is possible to see my game on multiple platforms and not be shot down with a useless product?

    Read the article

  • Oracle CRM On Demand Release 24 is Generally Available

    - by Richard Lefebvre
    Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4 We are pleased to announce that Oracle CRM On Demand Release 24 is Generally Available as of October 25, 2013 Get smarter, more productive and the best value with Oracle CRM On Demand Release 24. Oracle CRM On Demand continues to be the most complete Software-as-a-Service (SaaS) CRM solution available. Now, with Release 24, organizations of all types and sizes benefit from actionable insight anywhere, anytime, as well as key enhancements in mobility, embedded social, analytics, integration and extensibility, and ease of use.Next Generation Mobile and Desktop Solutions : Oracle CRM On Demand Release 24 offers a complete set of mobile and desktop solutions that improve productivity by enabling reps to access and update information anywhere, anytime. Capabilities include: Oracle CRM On Demand Disconnected Mobile Sales (DMS) – A disconnected native iPad solution, DMS has been further streamlined mobile sales process by adding Structured Product Messaging to record brand specific call objectives, enhancements in HTML5 eDetailing including message response tracking and improvements in administration and configuration such as more field management options for read only fields, role management and enhanced logging. Oracle CRM On Demand Connected Mobile Sales. This add-on mobile service provides a configurable mobile solution on iOS, BlackBerry and now Android devices. You can access data from CRM On Demand in real time with a rich, native user experience, that is comfortable and familiar to current iOS, BlackBerry and Android users. New features also include Single Sign On to enhance security for mobile users.  Oracle CRM On Demand Desktop: This application centralizes essential CRM information in the familiar Microsoft Outlook environment,increasing user adoption and decreasing training costs. Users can manage CRM data while disconnected, then synchronize bi-directionally when they are back on the network. New in Oracle CRM On Demand Desktop Version 3 is the ability to synchronize by Books of Business, and improved Online Lookup. Mobile Browser Support: The following mobile device browsers are now supported: Apple iPhone, Apple iPad, Windows 8 Tablets, and Google Android. Leverage the Social Enterprise Engaging customers via social channels is rapidly becoming a significant key to enhanced customer experience as it provides proactive customer service, targeted messaging and greater intimacy throughout the entire customer lifecycle. Listening to customers on the social channels can identify a customers’ sphere of influence and the real value they bring to their organization, or the impact they can have on the opportunity. Servicing the customer’s need is the first step towards loyalty to a brand, integrating with social channels allows us to maximize brand affinity and virally expand customer engagements thus increasing revenue. Oracle CRM On Demand is leveraging the Social Enterprise through its integration with Oracle’s Social Relationship Management (SRM) product suite by providing out-of-the-box integration with Social Engagement and Monitoring (SEM), Social Marketing (SM) and Oracle Social Network (OSN). With Oracle CRM On Demand Release 24, users are able to create a service request from a social post via SEM and have leads entered on a SM lead form automatically entered into Oracle CRM On Demand along with the campaign, streamlining the lead qualification process. Get Smarter with Actionable Insight The difference between making good decisions and great decisions depends heavily upon the quality, structure, and availability of information at hand. Oracle CRM On Demand Release 24 expands upon its industry-leading analytics capabilities to provide greater business insight than ever before. New capabilities include flexible permissions on analytics reports folders, allowing for read only access to reports, and additional field and object coverage. Get More Productive with Powerful Tools Oracle CRM On Demand Release 24 introduces a new set of powerful capabilities designed to maximize productivity. A significant new feature for customizing Oracle CRM On Demand is a JavaScript API. The JS API allows customers to add new buttons, suppress existing buttons and even change what happens when a user clicks an existing button. Other usability enhancements, such as personalized related information applets, extended case insensitive search provide users with better, more intuitive, experience. Additional privileges for viewing private activities and notes allow administrators to reassign records as needed, and Custom Object management. Workflow has been added to the Order Item object; and now tasks can be assigned to a relative user, such as an Account Owner, allowing more complex business processes to be automated and adhered to. Get the Best Value Oracle CRM On Demand delivers unprecedented value with the broadest set of capabilities from a single-provider solution, the industry’s lowest total cost of ownership, the most on-demand deployment options, the deepest CRM expertise and experience of any CRM provider, and the most secure CRM in the cloud. With Release 24, Oracle CRM On Demand now includes even more enterprise-grade security, integration, and extensibility features, along with enhanced industry editions to save you time and money. New features include: Business Process Administration: A new privilege has been added that allows administrators to override a Business Process Administration rule.This privilege permits users to edit a locked record, or unlock a record, in the event of a material change that needs to be reflected per corporatepolicy. Additionally, the Products Detailed object has been added to Business Process Administration, enabling record locking and logic to be applied. Expanded Integration: Oracle continues to improve Web Services each release, by adding more object coverage enabling customers and partners to easily integrate with CRM On Demand. Bottom Line Oracle CRM On Demand Release 24 enables organizations to get smarter, get more productive, and get the best value, period. For more information on Oracle CRM On Demand Release 24, please visit oracle.com/crmondemand

    Read the article

  • Why won't Unity include these simple features?

    - by eduart
    Every respected dock out there (docky, awn, cairo dock) has these 2 important features that I really consider a must: The ability to re-size them (someone may like smaller or bigger icons than the default ones) The ability to change their position (bottom, left, right) In Unity (which let's face it, is a dock) I heard that it will not be possible even in the long run to have these features implemented. In my opinion Ubuntu is reinventing the wheel here, because so far Unity doesn't offer a thing more than, for example docky (they are offering even less) and they are doing it the wrong way by not including some simple and very necessary options that I think everybody wants, that's why they are present in the other docks. In Mac OS X, the Apple logo is in the left, the min, max, close buttons are on the left, but still you can resize and position your dock wherever you want. So again, my question is: Is there any really plausible explanation why unity will not include these simple features?

    Read the article

  • UIImagePickerController, UIImage, Memory and More!

    - by Itay
    I've noticed that there are many questions about how to handle UIImage objects, especially in conjunction with UIImagePickerController and then displaying it in a view (usually a UIImageView). Here is a collection of common questions and their answers. Feel free to edit and add your own. I obviously learnt all this information from somewhere too. Various forum posts, StackOverflow answers and my own experimenting brought me to all these solutions. Credit goes to those who posted some sample code that I've since used and modified. I don't remember who you all are - but hats off to you! How Do I Select An Image From the User's Images or From the Camera? You use UIImagePickerController. The documentation for the class gives a decent overview of how one would use it, and can be found here. Basically, you create an instance of the class, which is a modal view controller, display it, and set yourself (or some class) to be the delegate. Then you'll get notified when a user selects some form of media (movie or image in 3.0 on the 3GS), and you can do whatever you want. My Delegate Was Called - How Do I Get The Media? The delegate method signature is the following: - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info; You should put a breakpoint in the debugger to see what's in the dictionary, but you use that to extract the media. For example: UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage]; There are other keys that work as well, all in the documentation. OK, I Got The Image, But It Doesn't Have Any Geolocation Data. What gives? Unfortunately, Apple decided that we're not worthy of this information. When they load the data into the UIImage, they strip it of all the EXIF/Geolocation data. Can I Get To The Original File Representing This Image on the Disk? Nope. For security purposes, you only get the UIImage. How Can I Look At The Underlying Pixels of the UIImage? Since the UIImage is immutable, you can't look at the direct pixels. However, you can make a copy. The code to this looks something like this: UIImage* image = ...; // An image NSData* pixelData = (NSData*) CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage)); unsigned char* pixelBytes = (unsigned char *)[pixelData bytes]; // Take away the red pixel, assuming 32-bit RGBA for(int i = 0; i < [pixelData length]; i += 4) { pixelBytes[i] = 0; // red pixelBytes[i+1] = pixelBytes[i+1]; // green pixelBytes[i+2] = pixelBytes[i+2]; // blue pixelBytes[i+3] = pixelBytes[i+3]; // alpha } However, note that CGDataProviderCopyData provides you with an "immutable" reference to the data - meaning you can't change it (and you may get a BAD_ACCESS error if you do). Look at the next question if you want to see how you can modify the pixels. How Do I Modify The Pixels of the UIImage? The UIImage is immutable, meaning you can't change it. Apple posted a great article on how to get a copy of the pixels and modify them, and rather than copy and paste it here, you should just go read the article. Once you have the bitmap context as they mention in the article, you can do something similar to this to get a new UIImage with the modified pixels: CGImageRef ref = CGBitmapContextCreateImage(bitmap); UIImage* newImage = [UIImage imageWithCGImage:ref]; Do remember to release your references though, otherwise you're going to be leaking quite a bit of memory. After I Select 3 Images From The Camera, I Run Out Of Memory. Help! You have to remember that even though on disk these images take up only a few hundred kilobytes at most, that's because they're compressed as a PNG or JPG. When they are loaded into the UIImage, they become uncompressed. A quick over-the-envelope calculation would be: width x height x 4 = bytes in memory That's assuming 32-bit pixels. If you have 16-bit pixels (some JPGs are stored as RGBA-5551), then you'd replace the 4 with a 2. Now, images taken with the camera are 1600 x 1200 pixels, so let's do the math: 1600 x 1200 x 4 = 7,680,000 bytes = ~8 MB 8 MB is a lot, especially when you have a limit of around 24 MB for your application. That's why you run out of memory. OK, I Understand Why I Have No Memory. What Do I Do? There is never any reason to display images at their full resolution. The iPhone has a screen of 480 x 320 pixels, so you're just wasting space. If you find yourself in this situation, ask yourself the following question: Do I need the full resolution image? If the answer is yes, then you should save it to disk for later use. If the answer is no, then read the next part. Once you've decided what to do with the full-resolution image, then you need to create a smaller image to use for displaying. Many times you might even want several sizes for your image: a thumbnail, a full-size one for displaying, and the original full-resolution image. OK, I'm Hooked. How Do I Resize the Image? Unfortunately, there is no defined way how to resize an image. Also, it's important to note that when you resize it, you'll get a new image - you're not modifying the old one. There are a couple of methods to do the resizing. I'll present them both here, and explain the pros and cons of each. Method 1: Using UIKit + (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize; { // Create a graphics image context UIGraphicsBeginImageContext(newSize); // Tell the old image to draw in this new context, with the desired // new size [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; // Get the new image from the context UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); // End the context UIGraphicsEndImageContext(); // Return the new image. return newImage; } This method is very simple, and works great. It will also deal with the UIImageOrientation for you, meaning that you don't have to care whether the camera was sideways when the picture was taken. However, this method is not thread safe, and since thumbnailing is a relatively expensive operation (approximately ~2.5s on a 3G for a 1600 x 1200 pixel image), this is very much an operation you may want to do in the background, on a separate thread. Method 2: Using CoreGraphics + (UIImage*)imageWithImage:(UIImage*)sourceImage scaledToSize:(CGSize)newSize; { CGFloat targetWidth = targetSize.width; CGFloat targetHeight = targetSize.height; CGImageRef imageRef = [sourceImage CGImage]; CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef); CGColorSpaceRef colorSpaceInfo = CGImageGetColorSpace(imageRef); if (bitmapInfo == kCGImageAlphaNone) { bitmapInfo = kCGImageAlphaNoneSkipLast; } CGContextRef bitmap; if (sourceImage.imageOrientation == UIImageOrientationUp || sourceImage.imageOrientation == UIImageOrientationDown) { bitmap = CGBitmapContextCreate(NULL, targetWidth, targetHeight, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, bitmapInfo); } else { bitmap = CGBitmapContextCreate(NULL, targetHeight, targetWidth, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, bitmapInfo); } if (sourceImage.imageOrientation == UIImageOrientationLeft) { CGContextRotateCTM (bitmap, radians(90)); CGContextTranslateCTM (bitmap, 0, -targetHeight); } else if (sourceImage.imageOrientation == UIImageOrientationRight) { CGContextRotateCTM (bitmap, radians(-90)); CGContextTranslateCTM (bitmap, -targetWidth, 0); } else if (sourceImage.imageOrientation == UIImageOrientationUp) { // NOTHING } else if (sourceImage.imageOrientation == UIImageOrientationDown) { CGContextTranslateCTM (bitmap, targetWidth, targetHeight); CGContextRotateCTM (bitmap, radians(-180.)); } CGContextDrawImage(bitmap, CGRectMake(0, 0, targetWidth, targetHeight), imageRef); CGImageRef ref = CGBitmapContextCreateImage(bitmap); UIImage* newImage = [UIImage imageWithCGImage:ref]; CGContextRelease(bitmap); CGImageRelease(ref); return newImage; } The benefit of this method is that it is thread-safe, plus it takes care of all the small things (using correct color space and bitmap info, dealing with image orientation) that the UIKit version does. How Do I Resize and Maintain Aspect Ratio (like the AspectFill option)? It is very similar to the method above, and it looks like this: + (UIImage*)imageWithImage:(UIImage*)sourceImage scaledToSizeWithSameAspectRatio:(CGSize)targetSize; { CGSize imageSize = sourceImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = targetSize.width; CGFloat targetHeight = targetSize.height; CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0,0.0); if (CGSizeEqualToSize(imageSize, targetSize) == NO) { CGFloat widthFactor = targetWidth / width; CGFloat heightFactor = targetHeight / height; if (widthFactor > heightFactor) { scaleFactor = widthFactor; // scale to fit height } else { scaleFactor = heightFactor; // scale to fit width } scaledWidth = width * scaleFactor; scaledHeight = height * scaleFactor; // center the image if (widthFactor > heightFactor) { thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; } else if (widthFactor < heightFactor) { thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; } } CGImageRef imageRef = [sourceImage CGImage]; CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef); CGColorSpaceRef colorSpaceInfo = CGImageGetColorSpace(imageRef); if (bitmapInfo == kCGImageAlphaNone) { bitmapInfo = kCGImageAlphaNoneSkipLast; } CGContextRef bitmap; if (sourceImage.imageOrientation == UIImageOrientationUp || sourceImage.imageOrientation == UIImageOrientationDown) { bitmap = CGBitmapContextCreate(NULL, targetWidth, targetHeight, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, bitmapInfo); } else { bitmap = CGBitmapContextCreate(NULL, targetHeight, targetWidth, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, bitmapInfo); } // In the right or left cases, we need to switch scaledWidth and scaledHeight, // and also the thumbnail point if (sourceImage.imageOrientation == UIImageOrientationLeft) { thumbnailPoint = CGPointMake(thumbnailPoint.y, thumbnailPoint.x); CGFloat oldScaledWidth = scaledWidth; scaledWidth = scaledHeight; scaledHeight = oldScaledWidth; CGContextRotateCTM (bitmap, radians(90)); CGContextTranslateCTM (bitmap, 0, -targetHeight); } else if (sourceImage.imageOrientation == UIImageOrientationRight) { thumbnailPoint = CGPointMake(thumbnailPoint.y, thumbnailPoint.x); CGFloat oldScaledWidth = scaledWidth; scaledWidth = scaledHeight; scaledHeight = oldScaledWidth; CGContextRotateCTM (bitmap, radians(-90)); CGContextTranslateCTM (bitmap, -targetWidth, 0); } else if (sourceImage.imageOrientation == UIImageOrientationUp) { // NOTHING } else if (sourceImage.imageOrientation == UIImageOrientationDown) { CGContextTranslateCTM (bitmap, targetWidth, targetHeight); CGContextRotateCTM (bitmap, radians(-180.)); } CGContextDrawImage(bitmap, CGRectMake(thumbnailPoint.x, thumbnailPoint.y, scaledWidth, scaledHeight), imageRef); CGImageRef ref = CGBitmapContextCreateImage(bitmap); UIImage* newImage = [UIImage imageWithCGImage:ref]; CGContextRelease(bitmap); CGImageRelease(ref); return newImage; } The method we employ here is to create a bitmap with the desired size, but draw an image that is actually larger, thus maintaining the aspect ratio. So We've Got Our Scaled Images - How Do I Save Them To Disk? This is pretty simple. Remember that we want to save a compressed version to disk, and not the uncompressed pixels. Apple provides two functions that help us with this (documentation is here): NSData* UIImagePNGRepresentation(UIImage *image); NSData* UIImageJPEGRepresentation (UIImage *image, CGFloat compressionQuality); And if you want to use them, you'd do something like: UIImage* myThumbnail = ...; // Get some image NSData* imageData = UIImagePNGRepresentation(myThumbnail); Now we're ready to save it to disk, which is the final step (say into the documents directory): // Give a name to the file NSString* imageName = @"MyImage.png"; // Now, we have to find the documents directory so we can save it // Note that you might want to save it elsewhere, like the cache directory, // or something similar. NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* documentsDirectory = [paths objectAtIndex:0]; // Now we get the full path to the file NSString* fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName]; // and then we write it out [imageData writeToFile:fullPathToFile atomically:NO]; You would repeat this for every version of the image you have. How Do I Load These Images Back Into Memory? Just look at the various UIImage initialization methods, such as +imageWithContentsOfFile: in the Apple documentation.

    Read the article

< Previous Page | 90 91 92 93 94 95 96 97 98 99 100 101  | Next Page >