БлогNot. C++ Builder: конвертер картинок под нужный размер

C++ Builder: конвертер картинок под нужный размер

Напишем небольшое учебное приложение для "пережатия" картинок BMP и JPG под экран Вашего любимого мобильного телефона.

Создав в C++ Builder новый проект, установим размеры клиентской области окна (ClientWidth, ClientHeight в свойствах формы) равными 240 и 320 пикселов соответственно, а также запретим изменение размеров окна приложения (BorderIcons->biMaximize = false, BorderStyle = bsSingle). Другие размеры окна потом можно будет установить из настроек.

Добавим на форму рисунок Image1, установим ему свойства Align=alClient, Stretch=true, AutoSize=true. Это обеспечит автоматическое растяжение рисунка по текущему размеру окна формы. А вот свойством Proportional (сохранение пропорций рисунка при масштабировании) будем управлять из отдельного окна настроек. Там же разрешим масштабировать рисунки к размерам от 128x128 до 960x800 пикселов.

Единственный "нетривиальный" момент в исходниках - как учесть при сохранении графического файла изменения, внесённые его масштабированием при выводе в Image1. Проще всего это выполнить следующим образом:

Graphics::TBitmap *FormImage = GetFormImage();
Image1->Picture->Assign (FormImage);
Image1->Picture->SaveToFile(FileName);

Без первых двух строк оператор SaveToFile сохранит рисунок именно в исходном размере, игнорируя масштабирование, выполненное при выводе в Image1.

Обрабатывать BMP и JPEG единым кодом можно, только не забываем, что для работы с форматом JPEG к проекту подключается заголовочный файл

#include <jpeg.hpp>

Для GIF такой же "универсальной" библиотеки нет, разве что для некоторых версий Builder'а.

Вот скриншот приложения и архив с исполняемым файлом + исходниками.

Простейшая программа для масштабирования картинок (C++ Builder)
Простейшая программа для масштабирования картинок (C++ Builder)

 Скачать архив ZIP с приложением и исходниками на C++ Builder (311 Кб)

16.10.2013, 21:56 [16722 просмотра]


теги: c++ программирование графика мобильник builder

К этой статье пока нет комментариев, Ваш будет первым