Instagram is first and foremost designed as a mobile app. You're really supposed to upload from your phone, using photos you took on the phone, and in real-time (or at least, non-automated).
But that doesn't work for everyone. Maybe you like to edit your photos in something like Lightroom first. Maybe you want to upload photos or video taken on a camera that's not your phone. Or maybe you just don't like typing long captions on your phone and would prefer to use a real keyboard.
Sure, you can email the photos from your computer to your phone, save them on your phone, and then upload through the Instagram app. But that's pretty cumbersome and tedious. You can also use something like Hootsuite to schedule your Instagram posts, but their approach really only gets you halfway there and doesn't bypass the need to use your phone to do the actual posting--it's more like a reminder service. Buffer and Sendible tackle it basically the same way.
But other options do exist that might work better for some Instagram users, whether you're using it for social media marketing or sharing photos privately with friends and family.
Here are several other ways to post from your PC directly to Instagram without needing to use your phone. They include third-party apps and browser tricks. Some are free; some are paid. Some work on both Mac and Windows; some work on only one or the other. Each app or service and hack works a bit differently, and each has its own pros and cons.
Secondly, to interact with Instagram and post on your account, some of these apps and services require your login details. Unless otherwise noted, I have used the apps and services listed here and haven't come across any adverse consequences, but you should still be cautious before handing over login details to third-party services. The safest options are ones like the user-agent spoofing method where you don't hand over your login details to third-parties.
Via a Web Browser
Normally, when you open the Instagram site in your desktop's web browser you get a stripped-down version of the site. It allows you to do some things like comment on photos, but it doesn't include a way to create new posts.
Several newer browsers have a function that can be used to make the Instagram site think you're accessing it with a mobile device so that the posting feature becomes available. It's called user agent spoofing. You can do it yourself--I've put together a detailed guide on how to use user agent spoofing with Instagram with major browsers--or you can use a browser plugin that does the heavy lifting for you, such as Desktop for Instagram for the Chrome browser.
Advantages of this method are that it's free and doesn't require installing a third-party app or plugin (unless you're going the browser plugin route, of course). It also doesn't require you to hand over your login credentials to a third party. But there are also disadvantages--not all Instagram features are available through the website. So you might run into limitations on features such as in-photo tagging, multi-photo posts, or stories. And there's no way to schedule posts using this method.
Flume for Mac
Flume is full-featured Instagram client. It's only available on Mac. There's a free version with the basic features, but if you want to upload photos or videos directly from your computer or manage multiple accounts you'll need to do a paid upgrade to Flume Pro.
It has a slick Mac-style interface with quite a bit of flexibility in its display. It supports multi-image carousel posts, includes filters (when using the Pro version), lets you manage activity on your account, and manage your profile. It doesn't include scheduling.
Uplet is one of the simplest options if you're using a Mac. It's a third-party paid app available at the Mac App Store.
It's very simple, but it gets the job done. I've found it to be lightweight, easy to use, and to work as advertised.
Its core is a drop panel. Simply drop the photo files onto it, fill out the caption info, and hit send. You can upload multiple photos or videos at once (each posts as a single post). It doesn't have any filters or advanced editing features, but that simplicity is a big part of its appeal. One feature that has been recently added, though, is the ability to work with multiple Instagram accounts and toggle between them.
So if you're on a Mac and looking for something straightforward, it's well worth a look.
I've put together a more detailed guide on using Uplet to post to Instagram that includes more screenshots.
Gramblr takes a quite different approach. It's more complicated, but it also offers a lot more features. There are versions for Mac and Windows and is free for the basic functionality.
There are two parts to it, an app that you install on your computer and a web service. They work together in getting your photos from your desktop to posting on Instagram.
The desktop app part of it is a utility app that really just runs in the background. Once you've installed it, you open it to launch the main Gramblr screen and then it just quietly takes care of things behind the scenes. All your main interactions are with the web service.
There's also a full suite of image editing tools like exposure controls and sharpening. There are also features like filters, frames, stickers, adding text overlays, and redeye correction. It also offers scheduling.
I've put together a more detailed guide to using Gramblr to post to Instagram. It also includes more screenshots.
You can find Gramblr here.
The reason I say "interacting" is that there are two versions that allow different things, although that's not as clear as it could be in the app's documentation.
The free version acts as an Instagram viewer, so you can do things like view images, add comments, and like images. To actually upload images or videos and tag them you'll need to upgrade to the Pro version for $2.99 a month. (Video upload is not available in the Windows version.)
It's straightforward enough to use. The screen looks like the older version of the Instagram mobile app and works basically the same way—it's essentially an emulator without needing to install a separate emulator host. It doesn't have scheduling or batch uploading options.
LR/Instagram is a new option for Lightroom users. It's a plugin that enables a Publish Service linked to your Instagram account.
If you're already using Lightroom, it's very convenient to be able to post directly without the need to export the files and upload them as a separate process. You can crop and add padding with Lightroom's normal editing tools, and there's no need to open a web browser or other app. You can also add a caption and hashtags from within Lightroom. It doesn't allow some of the other synchronization options that publish services typically offer--you can't edit the photo or caption and republish it, for example. You don't have access to Instagram's built-in features (although you can, of course, use the much more powerful filter options in Lightroom), and there's no scheduling functionality.
Here are some other alternatives that are available but that I've found less useful for one reason or another.
Instagram on PC via Bluestacks: Bluestacks is an Android mobile emulator that runs on your computer. You can then install and run mobile apps inside it, including the Instagram app. I couldn't get this to work properly on Mac, but your mileage might vary.
Instagram from Computer: This is a Chrome browser extension. I haven't tried it and can't vouch for it. It appears that this extension is no longer available.