biblioteka gd

Potrzebujesz pomocy z C, C++, perl, python, itp.
lukkas
Posty: 36
Rejestracja: 10 października 2007, 23:22

biblioteka gd

Post autor: lukkas »

witam.

skad moge zlapac biblioteke GD do C++? zainstalowalem libgd-tools ale to chyba nie to (sadze tak po przeczytaniu manuala do tego).

zalezy mi na wskazowkach jak najszybciej bo na jutro musze napisac program :-P

pozdrawiam,
Lukasz
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

Post autor: ruun »

Kod: Zaznacz cały

aptitude install libgd-dev libgd1
lukkas
Posty: 36
Rejestracja: 10 października 2007, 23:22

Post autor: lukkas »

dzieki bardzo, zainstalowalem libgd2 oraz libgd-noxpm-dev bo takie cos tylko znalazlem.

a jak kompilowac ten program? normalnie mam wpisac #include<libdg.h>? w jakis posob dostarczyc biblioteke - odpowiednik dll-a w windowsie? mozna prosic jakis szybki prosty przyklad? biblioteki maja byc w katalogu programu?

[ Dodano: 2008-02-26, 13:25 ]
przykladowy program jaki kompilowalismy na windowsie poleceniem

Kod: Zaznacz cały

lgcc program.cpp libbgd.a
plik libgd.a znajdowal sie w katalogu z programem

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include "gd.h"

const int sze=300;
const int wys=300;
const int loop=10000000;

int losowo(int u1, int u2)
{
	if(u2<u1) return 0; 
	if(u1==u2) return u1;
	// r w zakresie [0,1)
	double r=rand()*1.0/(RAND_MAX+1.0);
	return u1+(int)floor(r*(u2-u1+1));
}


// zmLos(u,u1,u2) zmienia u = u + 1 , lub u = u - 1, ale tak, by u1<=u<u2
int zmLos(int u, int u1=0, int u2=256)
{
	if(u==u1)   u=u+losowo(0,1); else
	if(u==u2-1) u=u-losowo(0,1); else
	            u=u+losowo(-1,1);
	return u;
}


int main()
{
	gdImagePtr wy; 
	wy=gdImageCreateTrueColor(sze,wys);
	
	int r,g,b,x,y;
	
	r=g=b=0;
	x=sze/2;
	y=wys/2;
	
	
	for(int i=0; i<loop; i++)
	{
		r=zmLos(r);
		g=zmLos(g);
		b=zmLos(b);
		x=zmLos(x,0,sze);
		y=zmLos(y,0,wys);
		gdImageSetPixel(wy,x,y,gdTrueColor(r,g,b));
	}
	


	FILE *f;
	
	f=fopen("rys_pr001.png", "wb");
	gdImagePng(wy, f);
	fclose(f);
	f=fopen("rys_pr001.gif", "wb");
	gdImageGif(wy, f);
	fclose(f);
	gdImageDestroy(wy);
}
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

Post autor: ruun »

Po zainstalowaniau pakietu libgd-noxpm-dev pojawiły Ci się co najmniej dwa nowe pliki

/usr/include/gd.h
/usr/lib/libgd.a

Próbowałeś skompilować ten kod? Masz zainstalowany build-essential?
mlyczek
Junior Member
Posty: 979
Rejestracja: 02 sierpnia 2006, 19:17

Post autor: mlyczek »

lukkas pisze:#include "gd.h"
Spróbuj zamienić to na coś takiego

Kod: Zaznacz cały

#include <gd.h>
teraz powinno się ładnie skompilować
lukkas
Posty: 36
Rejestracja: 10 października 2007, 23:22

Post autor: lukkas »

wlasnie globalne biblioteki nie sa odnajdowane - po zmianie na < > taki blad wyskakuje:

Kod: Zaznacz cały

$ g++ pr001.cpp libgd.a
pr001.cpp:5:16: error: gd.h: No such file or directory
ale poradzilem sobie tak, ze skopiowalem ze zrodel sciagnietych z http://libgd.org pliki ktorych mu brakowalo, czyli doklandie: (do katalogu ze zrodlem programu)

Kod: Zaznacz cały

gdfx.h  gd.h  gd_io.h  libgd.a 
i wszystko smiga ;)

Kod: Zaznacz cały

 g++ pr001.cpp ./libgd.a
(tylko z powyzszego zrodla trzeba usunac zapisywanie pliku w png bo z tym formatem jest cos nie tak)

dzieki za zainteresowanie tematem, teraz tylko trzeba umiescic te pliki w odpowiednich katalogach systemu...

pozdrawiam,
Lukasz
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

Post autor: ruun »

lukkas pisze:(..) ale poradzilem sobie tak, ze skopiowalem ze zrodel sciagnietych z http://libgd.org pliki ktorych mu brakowalo, czyli doklandie: (do katalogu ze zrodlem programu) (...)
bez sensu, masz przecież te pliki w systemie, zainstalowane z paczki, wystarczyło dorobić dowiązania.
mlyczek
Junior Member
Posty: 979
Rejestracja: 02 sierpnia 2006, 19:17

Post autor: mlyczek »

Powinny być odnajdywane normalnie, zainstalowałem u siebie i wszystko jest ok przy uzyciu < > oraz kompilacji tak

Kod: Zaznacz cały

g++ pr001.cpp
Theq
Beginner
Posty: 140
Rejestracja: 16 kwietnia 2007, 19:00
Lokalizacja: Legnica

Post autor: Theq »

Kod: Zaznacz cały

#include <gd.h>
ewentualnie dla sprawdzenia czy masz naglowek w /usr/include/

Kod: Zaznacz cały

whereis gd.h
potem

Kod: Zaznacz cały

g++ -Wall -pedantic pr001.cpp -lgd -o pr001
(tylko z powyzszego zrodla trzeba usunac zapisywanie pliku w png bo z tym formatem jest cos nie tak)
z twoim kodem jest cos nie tak ;) u mnie png dziala
ODPOWIEDZ