Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертация изображения 
:(
    Опции темы
kelt
Дата 9.12.2005, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: 1
Всего: 0



Всем привет, я вот тут решил заняться написанием проги, которая может изображение одного формата перевести в другой. Не подскажите, с чего начать. Заранее благодарен.

Это сообщение отредактировал(а) kelt - 9.12.2005, 08:45
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
mr.DUDA
Дата 9.12.2005, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Пример:

Код
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

namespace TestApp
{
    class Converter
    {
        static void Main()
        {
            OpenFileDialog odlg = new OpenFileDialog();
            odlg.Filter = "Image Files(*.BMP;*.JPG;*.JPEG;*.GIF;*.TIFF;*.PNG)|*.BMP;*.JPG;*.JPEG;*.GIF;*.TIFF;*.PNG|All files (*.*)|*.*";
            odlg.Title = "Выберите файл с изображением";
            if(odlg.ShowDialog() == DialogResult.Cancel) return;

            Image img;
            try
            {
                img = Image.FromFile(odlg.FileName);
            }
            catch
            {
                MessageBox.Show("Файл " + odlg.FileName + " не содержит изображения", "ошибка");
                return;
            }

            SaveFileDialog sdlg = new SaveFileDialog();
            sdlg.Filter = "Файл BMP|*.BMP|Файл JPEG|*.JPEG|Файл GIF|*.GIF|Файл TIFF|*.TIFF|Файл PNG|*.PNG";
            sdlg.Title = "Выберите имя и формат для сохранения";
            sdlg.AddExtension = true;
            if(sdlg.ShowDialog() == DialogResult.Cancel) return;

            ImageFormat format;
            switch(sdlg.FilterIndex)
            {
                case 1: format = ImageFormat.Bmp; break;
                case 2: format = ImageFormat.Jpeg; break;
                case 3: format = ImageFormat.Gif; break;
                case 4: format = ImageFormat.Tiff; break;
                case 5: format = ImageFormat.Png; break;
                default: return;
            }

            try
            {
                img.Save(sdlg.FileName, format);
            }
            catch
            {
                MessageBox.Show("Не удалось сохранить файл с картинкой", "ошибка");
            }
        }
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
kelt
Дата 9.12.2005, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: 1
Всего: 0



Большое спасибо, за помощь, это как раз то что мне было нужно.
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
mr.DUDA
Дата 9.12.2005, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



пожалуйста.


--------------------
user posted image
PM MAIL WWW   Вверх
kelt
Дата 12.12.2005, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: 1
Всего: 0



У меня вот вопрос, этот код для VS2003, а как его приобщить для VS2005, и как переменную format сделать типа ImageFormat, а то в 2005 этот тип сделан как namespace?
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
mr.DUDA
Дата 12.12.2005, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



У меня и в 2005-й нормально откомпилировалось и работает, ни строчки кода не правил... Убедись, что добавлены referenc-ы на:

System.Drawing.dll
System.Windows.Forms.dll


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 12.12.2005, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



kelt
На заметку - если будешь конвертить изображение с CMYK-цветами с пом. GDI+, цвета будут искажаться.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
kelt
Дата 13.12.2005, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: 1
Всего: 0



А у меня почемуто нет такого имя как ImageFormat есть ImageFormatConverter
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
mr.DUDA
Дата 13.12.2005, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



А ты ещё раз проверь. Вот он:

http://msdn.microsoft.com/library/rus/cpre...emberstopic.asp



--------------------
user posted image
PM MAIL WWW   Вверх
kelt
Дата 24.2.2006, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: 1
Всего: 0



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

Это сообщение отредактировал(а) kelt - 24.2.2006, 12:11
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1109 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.