Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 13.04.2012
Сообщений: 11

Как разрезать картинку

29.01.2013, 01:05. Показов 4620. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, При написании программы появился вопрос, как разрезать большую картинку в которой очень много маленьких картинок размером 32х32?
Размеры большой картинки:
49 строки
128 столбца

Пример картинки:
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2013, 01:05
Ответы с готовыми решениями:

Выделить линии и разрезать картинку по ним. (Opencv)
Здравствуйте, наставьте на путь истинный, подскажите алгоритм. На данной картинке нужно выделить все цифры на отдельные блоки (т.е...

Как программно разрезать картинку
Суть проблемы такова. У меня есть картинки, которые мне могут пригодится в той или иной ситуации. Как программно резать эти картинки,...

разрезать картинку
суть вопроса: есть картинка (планировка квартир), каким образом можна разрезать её так чтобы каждая квартира на этаже была как ссылка и при...

4
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
29.01.2013, 10:02
Nooo, используй Graphics.DrawImage()
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
29.01.2013, 11:52
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Directory.CreateDirectory("Icons");
int rows = 49;
int cols = 128;
using (var src = Bitmap.FromFile(args[0]) as Bitmap)
{
    using (var dst = new Bitmap(32, 32, src.PixelFormat))
    using (var gfx = Graphics.FromImage(dst))
        for (int y = 0; y < rows; y++)
        {
            for (int x = 0; x < cols; x++)
            {
                var rec = new Rectangle(x * dst.Width, y * dst.Height, dst.Width, dst.Height);
                gfx.DrawImage(src, 0, 0, rec, GraphicsUnit.Pixel);
                string filename = Path.GetFullPath(string.Format(@"Icons\{0:000}x{1:000}.jpg", y + 1, x + 1));
                Console.WriteLine(filename);
                dst.Save(filename);
            }
        }
}
Исходная картинка передается первым аргументом.
По желанию цикл можно распараллелить.
3
0 / 0 / 0
Регистрация: 13.04.2012
Сообщений: 11
29.01.2013, 19:32  [ТС]
А как перевести все картинки в одномерный массив и в windows form?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
29.01.2013, 19:44
Цитата Сообщение от Nooo Посмотреть сообщение
А как перевести все картинки в одномерный массив
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int rows = 49;
int cols = 128;
var bitmaps = new List<Bitmap>(rows * cols);
using (var src = Bitmap.FromFile(args[0]) as Bitmap)
{
    for (int y = 0; y < rows; y++)
    {
        for (int x = 0; x < cols; x++)
        {
            var dst = new Bitmap(32, 32, src.PixelFormat);
            var rec = new Rectangle(x * dst.Width, y * dst.Height, dst.Width, dst.Height);
            using (var gfx = Graphics.FromImage(dst))
                gfx.DrawImage(src, 0, 0, rec, GraphicsUnit.Pixel);  
            bitmaps.Add(dst);
        }
    }
}
Цитата Сообщение от Nooo Посмотреть сообщение
и в windows form?
А что это значит?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2013, 19:44
Помогаю со студенческими работами здесь

Разрезать картинку на части
привет. подскажите как разрезать картинку например на 9 частей(3 на 3) ?

Разрезать картинку на равные части
К примеру есть картинка 1024х1024. Нужно разрезать её, по методу &quot;плитки&quot; на 4 (512х512) или более равных части (Получить на выходе 4 или...

Разрезать картинку на части пазлов
Всем привет!!! Подскажите как можно реализовать или взять уже где ни будь готовый пример для раз резки картинки на части пазлов!!! За...

Разрезать картинку на равные части и сохранить их в файл
Не могу создать код, который разрезает картинку на 6 равных частей и сохраняет их в файл. Для Win Forms нашел, но переделать под WPF не...

Как разрезать спрайт?
У меня есть спрайт https://www.freepng.ru/png-utkalw/download.html. Но мне надо разрезать его на платформы. Можно ли это сделать в самой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru