[c++]tworzenie obrazka

0

witam.
Jak stworzyć obraz w c++ aby można go było zapisać do jpg i oczywiście otworzyć?
wiem jak zapisać w PPM ale tego się nie da wyświetlić.

Proszę o jakiś prosty przykład który tworzy obrazek z przypadkowych kolorów, bo potem i tak będę musiał go przekształcić do własnego algorytmu

0

Ale jak? W gołym C++, czy w jakiejś bibliotece?
Jak w bibliotece to zajrzyj do jej dokumentacji.
Jak w gołym, to skoro wiesz jak zapisać, to wiesz czego potrzebujesz. Więc utwórz to. Na stercie czy na stosie, gdzie tam chcesz.

0

może być w bibliotece ale nie wiem w jakiej i jak

0

To może w Qt.

#include <QImage>
#include <iostream>

void draw(QImage& obrazek){
  QSize size=obrazek.size();
  srand(0);
  
  for (int i = 0,x=0,y=0; i<10000; i++) {
    x = rand() % size.height();
    y = rand() % size.width();

    obrazek.setPixel(x, y,qRgb(rand()%255,rand()%255,rand()%255));
  }

}

int main(int argc, char *argv[])
{
     QImage obrazek(300,300,QImage::Format_RGB32);
   
     draw(obrazek);
     
     if(obrazek.save("pliczek.jpg"))
       std::cout<<"Udalo sie zapisac plik\n";
     else
       std::cout<<"Nieudalo sie zapisac pliku\n";
     std::cout<<std::endl;

     return 0;
}
0

wielkie dzięki

0

a to będzie miało już odpowiedni nagłówek z danymi?

0

możesz tak mniej więcej mi napiusać co robi funkcja

QImage obrazek(300,300,QImage::Format_RGB32);

i po co jest pętla do 1000

0

@Prawie bystry

bo tak myślałem, zęby użyć tego do wczytania pliku np bin do tego zdj jako rgb, ale żeby można było potem można było go odczytać.

funkcje draw jakoś tak zmodyfikowałem, ale nie działa tak jak powinna bo powstały obrazek jest ok 3 razy mniejszy od tego pliku bin

void draw(QImage& obrazek){
  QSize size=obrazek.size();
char aa,a,aaa;
FILE *plikkk;
plikkk = fopen ( "pr.bin" , "rb" );
for(int x=0;x<256;++x){
  for (int y = 0;y<222; y++) {

fread (&a,1,1,plikkk);//wczytuje bo najcie
fread (&aa,1,1,plikkk);
fread (&aaa,1,1,plikkk);



    obrazek.setPixel(x, y,qrgb(a,aa,aaa));
  }
}
 fclose(plikkk);
}
 QImage obrazek(xy,QImage::Format_ARGB32);

to tworzy obrazek 32 bitowy o 4 składniach, a potrzeba chyba 3 rgb po 4 bity.

Ktośby mi napisał jak to zmodyfikować?

1 użytkowników online, w tym zalogowanych: 0, gości: 1