Вывод изображения в C

Быстрый вопрос, есть ли способ показать изображение (например, bmp) из файла с помощью C? Дело не в graphics.h, видимо, и я не могу использовать Allegro, потому что он не поддерживает Borland (по крайней мере, я так читал). Мне нужно использовать очень старый компилятор для школьного проекта. Я хотел бы спросить, есть ли у кого-нибудь опыт работы с другими библиотеками? Если да, то какая это была библиотека? Большое спасибо.


person berdi9    schedule 15.03.2014    source источник
comment
Графика не является частью C; любые графические библиотеки специфичны для платформы. Когда компилятор/среда, которую вы используете или имеете в наличии, будет определять, как вы можете это сделать, поэтому вам нужно будет указать их.   -  person Scott Hunter    schedule 15.03.2014
comment
Мы будем использовать Turbo C на Win7. А наш маленький проект — это нанесение точек на карту мира. Нам нужно, чтобы изображение карты отображалось по мере того, как мы наносим точки, но мы не знаем, как отобразить изображение. Звучит так глупо, хотел бы я знать ответ на этот вопрос.   -  person berdi9    schedule 15.03.2014
comment
@CIB добавил ответ, проверьте, если я что-то пропущу, прокомментируйте меня ...   -  person Spektre    schedule 01.04.2014
comment
Кстати, если вы используете турбо С++ на w7 (BDS2006), как я, то стоит посмотреть на этот stackoverflow.com/a/18016392/2521214 избавит вас от головной боли...   -  person Spektre    schedule 01.04.2014
comment
Не используйте TurboC++ в 2017 (и даже в 2014). Используйте последние стандартные компиляторы (например, GCC или Clang/LLVM....) для C11 или C++14.   -  person Basile Starynkevitch    schedule 20.05.2017


Ответы (1)


Я надеюсь, что у вас есть визуальный (Windows) borland, такой как Borland C++ Builder 3++ или Turbo C++, а не MS DOS. в этом случае это довольно просто, потому что вы можете использовать растровое изображение, которое является частью VCL, поэтому дополнительное включение не требуется.

  • здесь вы можете найти некоторые советы по рендерингу под borland

теперь, как визуализировать изображение из файла в ваше окно:

// this will create and load your bitmap
Graphics::TBitmap *bmp=new Graphics::TBitmap;
bmp->LoadFromFile("image.bmp");
bmp->HandleType=bmDIB;
bmp->PixelFormat=pf32bit;

// on paint you can draw your image to form,paintbox,another bitmap or whatever...
Form1->Canvas->Draw(0,0,bmp); // also you can use stretch draw or copy rectangle GDI functions

// before exiting delete the bmp
delete bmp;

[Примечания]

Вы также можете сохранить изображение с помощью bmp->SaveToFile("out.bmp"); Если вам нужен jpg, добавьте:

#include <jpeg.hpp>

TJPEGImage *jpg=new TJPEGImage;
jpg->LoadFromFile("image.jpg");
bmp->Assign(jpg);
delete jpg;

это загрузит jpg в ваш bmp, и вы также можете сохранить jpg таким же образом. Остерегайтесь, в старых версиях Borlands есть ошибка в TJPEGImage, из-за которой происходит сбой, если разрешение jpg слишком велико**

person Spektre    schedule 01.04.2014