Obrazki w C++

Potrzebuję na gwałt kodu do wklejenia obrazka do C++. Nie mam pojęcia jak taka instrukcja miałaby wyglądać. Błagam o pomoc. Obrazek zapisany na dysku, potrzebuję instrukcji do wklejenia go do programu.

Pozdrawiam i z góry dziękuję.

Otwórz w notatniku, skopiuj i wklej do kodu C++. Ot cała filozofia…

Po pierwsze: na forum nie rozwiązujemy zadań.

Po drugie: Tego się NIE DA zrobić.

Po trzecie: Zastanów się co piszesz…

Po pierwsze: Po to chyba takie fora istnieją?

po drugie: DA się zrobić.

po trzecie: To lepiej Ty się zastanów. Nie możesz pomóc, to nie pisz.

Jesteś śmieszny twierdząc, że otwierając obrazek w notatniku i skopiując jego kod źródłowy do C++ to będzie działać.

To była ironia…

Ad. 1: Przeczytaj regulamin*

Ad. 2: Nie da się. Jeśli umiesz programować to wiesz, że tego się “od tak” nie da zrobić. Musimy wiedzieć w jakim systemie piszesz, jakiego API używasz.

Ad. 3: Nie był bym taki pewien…

* - Do moderacji: Nie bawię się w moderatora, tylko próbuje nakierować koleżankę Dominikę7 , na dobry tok myślenia.

Hmm no więc Dominiko… posługując się tak okropnymi skrótami myślowymi możesz spotkać się z nierozumieniem. Powiedz co chcesz zrobić i w czym masz problem w sposób trochę bardziej jasny. Chcesz znać jakąś bibliotekę do obsługi grafiki, czy może chcesz tylko wyświetlić obrazek?

Po pierwsze, jeżeli da się to zrobić, to powiedz jak jeżeli tak dużo wiesz…

Po drugie sądzę, że w jego wypowiedzi nie było nic złego, a jeżeli ty tak zamierzasz zwracać się do innych, to nie licz na pomoc.

W konsoli nie da się tego zrobić. Do tego trzeba albo WinApi, albo DirectX.

Chciałbym podziękować Dominika7 , dzięki jej postowi miałem okazję przypomnieć sobie Qt pod C++ :slight_smile:

Napisałem szybko aplikację, która wyświetla zadany obrazek. Oto kod, może komuś się przyda:

main.cpp

#include 

#include "mainform.h"


int main(int argc, char *argv[])

{

	QApplication app(argc, argv);

	MainForm window;

	window.resize(640, 480);

	window.show();

	return app.exec();

}

mainform.h

#include 


class MainForm: public QMainWindow

{

	Q_OBJECT

 public:

	MainForm(QWidget * parent = 0, Qt::WFlags f = 0 );

	~MainForm(){};

 private slots:

	void loadImage();


 private:

	QPushButton* pushButton;

	QGraphicsScene* scene;

	QGraphicsView* view;

	QGraphicsPixmapItem* pixmapItem;

	QPixmap* pixmap;

	QGridLayout* layout;

	QLabel* label;

};

mainform.cpp

#include "mainform.h"

#include 


MainForm::MainForm(QWidget * parent, Qt::WFlags f) : QMainWindow(parent, f)

{

	QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

	QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));


	pushButton = new QPushButton(tr("Choose Image..."));

	scene = new QGraphicsScene();

	view = new QGraphicsView(scene);

	pixmap = new QPixmap();

	pixmapItem = scene->addPixmap(*pixmap);


	label = new QLabel(tr("No Image"));


	layout = new QGridLayout();

	layout->addWidget(view, 0, 0, 1, 2);

	layout->addWidget(pushButton, 1, 0);

	layout->addWidget(label, 1, 1);


	QWidget* cwidget = new QWidget();

	cwidget->setLayout(layout);

	setCentralWidget(cwidget);


	connect(pushButton, SIGNAL(clicked()), this, SLOT(loadImage()));

}


void MainForm::loadImage()

{

	QString fileName =

		QFileDialog::getOpenFileName(this, tr("Open Image"), QDir::homePath(), tr("Image Files (*.png *.jpg *.bmp)"));

	pixmap->load(fileName);

	pixmapItem->setPixmap(*pixmap);

	label->setText(fileName);

}

I jak ludzie mają się nauczyć programować, jeśli dostają gotowy kod na zawołanie…

Nie wszyscy muszą chcieć umieć programować. Poza tym, żeby wykorzystać (chociażby skompilować) ten kod jakaś wiedza jest potrzebna. Z terminologii używanej przez Dominikę7 wnioskuję, że raczej nie będzie potrafiła wykorzystać tego kodu. Ale skoro tak się go domagała, czemu jej nie ‘pomóc’? :slight_smile: Może komuś, kto kiedyś będzie szukał czegoś związanego z obrazkami w C++ (tak, szukał, a nie pisał bezmyślnie nowy temat) ten kod się przyda?

a potem szpanują na uczelni :]

Dziękuję.

A potem pójdą do roboty, okaże się, co (nie)potrafią naprawdę i otrzymają adekwatne do tego wynagrodzenie :slight_smile: