none
Каталог изображений .bmp RRS feed

  • Вопрос

  • Очень нужна помощь!!!
    Надо написать курсовую, а у меня с Си++ очень большие проблемы :(
    Задача такова : есть каталог изображений (формат .bmp), нужно определить, какие изображения в каталоге имеют площадь больше заданного значения.
    Пожалуйста, помогите !
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 22:25 MSDN Forums consolidation (От:Разработка Windows-приложений)
    18 января 2010 г. 17:22

Ответы

  • Возьми любую библотечку для чтения bmp и смотри на размеры каждой картинки - их и сравнивай с заданным значением. Благо, битмапы у нас все прямоугольные - площадь по размерам посчитать будет нетрудно.

    В чём именно проблема?.

    • Предложено в качестве ответа Alexander V. Vasilyev 19 января 2010 г. 12:20
    • Помечено в качестве ответа I.Vorontsov 25 января 2010 г. 12:34
    19 января 2010 г. 12:20
  • если vc++, то можно как-то так:)

    using namespace System;
    using namespace System::IO;
    using namespace System::Drawing;
    
    int main(array<System::String ^> ^args)
    {
        String^ path;
        Console::Write("Путь: ");
        for (; ; )
        {
            path = Console::ReadLine();
            if (Directory::Exists(path))
            {
                break;
            }
            Console::Write("Введите существующий путь: ");
        }
        int S;
        Console::Write("Площадь: ");
        for (; ; )
        {
            if (Int32::TryParse(Console::ReadLine(), S))
            {
                break;
            }
            Console::Write("Введите правильную площадь: ");
        }
        array<System::String^>^ files = Directory::GetFiles(path);
        bool ex = false;
        Console::WriteLine("Файлы:");
        for (int i=0;i<files->Length;i++)
        {
            if (files[i]->EndsWith(".bmp"))
            {
                Bitmap bmp = gcnew Bitmap(Image::FromFile(files[i]));
                if (bmp.Width * bmp.Height > S)
                {
                    Console::WriteLine(files[i]);
                    ex = true;
                }
            }
        }
        if (ex)
        {
            Console::WriteLine("Поиск закончен");
        }
        else
        {
            Console::WriteLine("Такие файлы не существуют");
        }
        Console::ReadLine();	
        return 0;
    }

    • Помечено в качестве ответа I.Vorontsov 25 января 2010 г. 12:35
    19 января 2010 г. 14:55

Все ответы

  • Возьми любую библотечку для чтения bmp и смотри на размеры каждой картинки - их и сравнивай с заданным значением. Благо, битмапы у нас все прямоугольные - площадь по размерам посчитать будет нетрудно.

    В чём именно проблема?.

    • Предложено в качестве ответа Alexander V. Vasilyev 19 января 2010 г. 12:20
    • Помечено в качестве ответа I.Vorontsov 25 января 2010 г. 12:34
    19 января 2010 г. 12:20
  • если vc++, то можно как-то так:)

    using namespace System;
    using namespace System::IO;
    using namespace System::Drawing;
    
    int main(array<System::String ^> ^args)
    {
        String^ path;
        Console::Write("Путь: ");
        for (; ; )
        {
            path = Console::ReadLine();
            if (Directory::Exists(path))
            {
                break;
            }
            Console::Write("Введите существующий путь: ");
        }
        int S;
        Console::Write("Площадь: ");
        for (; ; )
        {
            if (Int32::TryParse(Console::ReadLine(), S))
            {
                break;
            }
            Console::Write("Введите правильную площадь: ");
        }
        array<System::String^>^ files = Directory::GetFiles(path);
        bool ex = false;
        Console::WriteLine("Файлы:");
        for (int i=0;i<files->Length;i++)
        {
            if (files[i]->EndsWith(".bmp"))
            {
                Bitmap bmp = gcnew Bitmap(Image::FromFile(files[i]));
                if (bmp.Width * bmp.Height > S)
                {
                    Console::WriteLine(files[i]);
                    ex = true;
                }
            }
        }
        if (ex)
        {
            Console::WriteLine("Поиск закончен");
        }
        else
        {
            Console::WriteLine("Такие файлы не существуют");
        }
        Console::ReadLine();	
        return 0;
    }

    • Помечено в качестве ответа I.Vorontsov 25 января 2010 г. 12:35
    19 января 2010 г. 14:55
  • Что-то мне говорит о том, что речь идёт не о .NET'е...

    19 января 2010 г. 15:27
  • да подразумевал vc++.net:)
    19 января 2010 г. 15:34
  • А я догадываюсь, что нужен не .NET

    19 января 2010 г. 16:40