Как программно загрузить / опубликовать изображение на хостинге изображений без браузера? - PullRequest
0 голосов
/ 09 ноября 2008

Я хочу написать простую утилиту для загрузки изображений на различные бесплатные хостинги изображений, такие как TinyPic или Imageshack, с помощью контекстного меню для файла, вызываемого правой кнопкой мыши.

Как я могу сделать это с помощью .NET? Я видел некоторые сценарии Linux, которые используют cURL для публикации изображений на этом веб-сайте, но я не уверен, как создать запрос на публикацию, в комплекте с изображением на C #?

Может ли кто-нибудь указать мне правильное направление?


EDIT:

Я нашел довольно хороший ресурс. Cropper, бесплатный инструмент для создания скриншотов, написанный на .net, имеет множество плагинов с открытым исходным кодом. Одним из них является SendToTinyPic .. в комплекте с источником. Ссылка здесь:
http://www.codeplex.com/cropperplugins

Ответы [ 4 ]

4 голосов
/ 09 ноября 2008

FlickrNet API делает это чрезвычайно простым для работы с Flickr из .NET. У вас должна быть учетная запись Flickr, а также ключ API и общий секрет . Когда у вас есть то, что вам нужно, работать с API очень просто:

// http://www.flickr.com/services/api/misc.api_keys.html
string flickrApiKey = "<api key>";
string flickrApiSharedSecret = "<shared secret>";
string flickrAuthenticationToken = "<authentication token>";

Flickr flickr = new Flickr( flickrApiKey, flickrApiSharedSecret );

flickr.AuthToken = flickrAuthenticationToken;    

foreach ( FileInfo image in new FileInfo[] { 
    new FileInfo( @"C:\image1.jpg" ), 
    new FileInfo( @"C:\image2.jpg" ) } )
{
    string photoId = flickr.UploadPicture(
        image.FullName, image.Name, image.Name, "tag1, tag2" );
}
3 голосов
/ 09 ноября 2008

Используйте HttpWebRequest.

Используя этот класс, вы можете POST-данные отправлять на удаленный HTTP-адрес, просто установите mime / type в кодировку multi-part / form и отправьте двоичные данные из изображения с запросом.

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(VS.71).aspx

1 голос
/ 09 ноября 2008

Для ImageShack, посмотрите это приложение .

0 голосов
/ 02 июля 2009

TinyPic.com , насколько я знаю, не имеет API, но плагин Cropper SendToTinyPic пытается загрузить с помощью "Соскоб экрана". Официальная версия плагина сейчас не работает, но я собрал патч, используя тот же подход, и отправил его в проект cropperplugins . Это только один исходный модуль, который изменился. Любой может скачать проект плагинов, а затем вставить мой патч, и он должен работать.

С помощью патча PritScrn или Alt-PrntScrn сохранят изображение и загрузят его в tinypic, а затем вставят URL-адрес необработанного изображения в буфер обмена. Всего за 2 секунды. легко.

Если вам не нужен реальный инструмент, вы все равно можете посмотреть исходный код моего патча, чтобы узнать, как разместить страницу с данными формы и загрузить файл. Нет прямой ссылки. Смотрите http://cropperplugins.codeplex.com/SourceControl/PatchList.aspx и ищите # 3239.


Этот пример изображения был создан и затем автоматически загружен на tinypic.com с помощью комбинации клавиш Alt-PrtScrn. Example image

Чтобы вставить его сюда, мне просто нужно было нажать ctrl-V, потому что URL хранится в буфере обмена.

...