LibGD
Βιβλιοθήκη ανοιχτού κώδικα C για προηγμένη επεξεργασία εικόνας
Δωρεάν C API που επιτρέπει στους προγραμματιστές να σχεδιάζουν γρήγορα εικόνες, να προσθέτουν γραμμές, τόξα, κείμενο, πολλά χρώματα και να γράφουν το αποτέλεσμα ως αρχείο PNG ή JPEG.
Οι ψηφιακές εικόνες προσελκύουν πάντα περισσότερους επισκέπτες από το απλό κείμενο. Μια εικόνα αξίζει όσο χίλιες λέξεις. Έχουν τη δύναμη να προσελκύουν 94% περισσότερες προβολές και να προσελκύουν περισσότερους επισκέπτες. Είναι πάντα πιο γόνιμο και βολικό να παραδίδετε τα μηνύματά σας χρησιμοποιώντας εικόνες. Η βιβλιοθήκη ανοιχτού κώδικα LibGD επιτρέπει στους προγραμματιστές να σχεδιάζουν γρήγορα εικόνες, να προσθέτουν γραμμές, τόξα, κείμενο, πολλά χρώματα και να γράφουν το αποτέλεσμα ως αρχείο PNG ή JPEG.
Το LibGD είναι μια ισχυρή βιβλιοθήκη γραφικών που βοηθά τους προγραμματιστές λογισμικού να δημιουργούν και να διαχειρίζονται δυναμικά εικόνες μέσα στις εφαρμογές τους C. Η βιβλιοθήκη μπορεί να διαβάσει και να γράψει πολλές διαφορετικές μορφές εικόνας όπως BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM και πολλά άλλα. Η βιβλιοθήκη LibGD χρησιμοποιείται συνήθως για την ανάπτυξη ιστοσελίδων, αλλά μπορεί επίσης να χρησιμοποιηθεί με οποιαδήποτε αυτόνομη εφαρμογή. Η βιβλιοθήκη έχει συμπεριλάβει πολλά σημαντικά χαρακτηριστικά για τη δημιουργία και τον χειρισμό εικόνων, όπως τη δημιουργία γραφημάτων, γραφικών, μικρογραφιών και οτιδήποτε άλλο, εν κινήσει.
Ξεκινώντας με το LibGD
Ο προτεινόμενος τρόπος εγκατάστασης του LibGD είναι η χρήση του CMake. Χρησιμοποιήστε την ακόλουθη εντολή για ομαλή εγκατάσταση
Εγκαταστήστε το LibGD μέσω GitHub.
$ make install
Κλωνοποιήστε τις πιο πρόσφατες πηγές χρησιμοποιώντας την ακόλουθη εντολή
Εγκαταστήστε το LibGD μέσω GitHub.
$ git https://github.com/libgd/libgd.git
Δημιουργία & Τροποποίηση εικόνων μέσω C
Η βιβλιοθήκη LibGD παρέχει τη δυνατότητα δημιουργίας και χειρισμού εικόνων με ευκολία. Επιτρέπει τη χρήση της δημιουργίας εικόνων σε μορφές αρχείων BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM με μερικές μόνο γραμμές κώδικα C. Ένα εξαιρετικό χαρακτηριστικό της βιβλιοθήκης είναι ότι σας επιτρέπει να δημιουργείτε εικόνες εν κινήσει. Η βιβλιοθήκη είναι γνωστή για τη δημιουργία εικόνων εν κινήσει που μπορούν να χρησιμοποιηθούν σε ιστοσελίδες. Σας δίνει τη δυνατότητα να δημιουργήσετε μέσω προγραμματισμού μια εικόνα, να τη χρωματίσετε, να σχεδιάσετε πάνω της και να την αποθηκεύσετε στο δίσκο με ευκολία.
Δημιουργία και τροποποίηση εικόνων μέσω C API
gdImagePtr im;
int black, white;
FILE *out;
// Create the image
im = gdImageCreate(100, 100);
// Allocate background
white = gdImageColorAllocate(im, 255, 255, 255);
// Allocate drawing color
black = gdImageColorAllocate(im, 0, 0, 0);
// Draw rectangle
gdImageRectangle(im, 0, 0, 99, 99, black);
// Open output file in binary mode
out = fopen("rect.jpg", "wb");
// Write JPEG using default quality
gdImageJpeg(im, out, -1);
// Close file
fclose(out);
// Destroy image
gdImageDestroy(im);
Αλλαγή μεγέθους εικόνας μέσω C Library
Η βιβλιοθήκη ανοιχτού κώδικα LibGD επιτρέπει στους προγραμματιστές υπολογιστών να αλλάζουν το μέγεθος των εικόνων τους εν κινήσει χρησιμοποιώντας εντολές C μέσα στις εφαρμογές τους. Για να ξεκινήσετε, πρέπει να δώσετε την πλήρη διαδρομή και το όνομα της εικόνας για φόρτωση. Μόλις ολοκληρωθεί, πρέπει να δώσετε το πλάτος και το ύψος της νέας σας εικόνας και τη θέση εξόδου της επιλογής σας όπου θέλετε να την αποθηκεύσετε. Βεβαιωθείτε ότι όλες οι παρεχόμενες πληροφορίες είναι σωστές, εκτός από τη μη αποδοχή της βιβλιοθήκης και την εξαίρεση.
Φωτογραφία μέσω C API
int main (int argc, char *argv[]) {
FILE *fp;
gdImagePtr in, out;
int w, h;
/* Help */
if (argc<=4) {
printf("%s input.jpg output.jpg width height\n", argv[0]);
return 1;
}
/* Size */
w = atoi(argv[3]);
h = atoi(argv[4]);
if (w<=0 || h<=0) {
fprintf(stderr, "Bad size %dx%d\n", h, w);
return 2;
}
/* Input */
fp = fopen(argv[1], "rb");
if (!fp) {
fprintf(stderr, "Can't read image %s\n", argv[1]);
return 3;
}
in = gdImageCreateFromJpeg(fp);
fclose(fp);
if (!in) {
fprintf(stderr, "Can't create image from %s\n", argv[1]);
return 4;
}
/* Resize */
gdImageSetInterpolationMethod(in, GD_BILINEAR_FIXED);
out = gdImageScale(in, w, h);
if (!out) {
fprintf(stderr, "gdImageScale fails\n");
return 5;
}
/* Output */
fp = fopen(argv[2], "wb");
if (!fp) {
fprintf(stderr, "Can't save image %s\n", argv[2]);
return 6;
}
gdImageJpeg(out, fp, 90);
fclose(fp);
/* Cleanups */
gdImageDestroy(in);
gdImageDestroy(out);
return 0;
}
Crop, Flip, Μετατροπή ή περιστροφή εικόνων μέσω C API
Η βιβλιοθήκη LibGD έχει παράσχει πλήρη υποστήριξη για προγραμματικά cropping και Clipping εικόνες χρησιμοποιώντας C εντολές. Η βιβλιοθήκη έχει προσφέρει πολλαπλές λειτουργίες για την ανατροπή της εικόνας, όπως το γύρισμα της εικόνας οριζόντια ή κάθετα καθώς και τα δύο. Το ίδιο όπως και το ξύρισμα μπορείτε επίσης να το περιστρέψετε εύκολα σύμφωνα με τις δικές σας ανάγκες. Μόλις το κάνετε, μπορείτε να αποθηκεύσετε τις εικόνες με ευκολία. Παρέχει επίσης υποστήριξη για τη μετατροπή εικόνων NG και JPEG σε άλλες μορφές αρχείων που υποστηρίζονται.
Μετατροπή εικόνων NG σε ΟΕΕ μέσω C API
int main(int argc, char **argv)
{
gdImagePtr im;
FILE *in, *out;
if (argc != 3) {
fprintf(stderr, "Usage: png2avif infile.png outfile.avif\n");
exit(1);
}
printf("Reading infile %s\n", argv[1]);
in = fopen(argv[1], "rb");
if (!in) {
fprintf(stderr, "Error: input file %s does not exist.\n", argv[1]);
exit(1);
}
im = gdImageCreateFromPng(in);
fclose(in);
if (!im) {
fprintf(stderr, "Error: input file %s is not in PNG format.\n", argv[1]);
exit(1);
}
out = fopen(argv[2], "wb");
if (!out) {
fprintf(stderr, "Error: can't write to output file %s\n", argv[2]);
gdImageDestroy(im);
exit(1);
}
fprintf(stderr, "Encoding...\n");
gdImageAvifEx(im, out, 100, 0);
printf("Wrote outfile %s.\n", argv[2]);
fclose(out);
gdImageDestroy(im);
return 0;
}
Φόρτωση εικόνας από την προσωρινή μνήμη στη μνήμη
Η βιβλιοθήκη ανοιχτού κώδικα LibGD επιτρέπει στους προγραμματιστές λογισμικού να φορτώσουν μια ολόκληρη εικόνα στην προσωρινή μνήμη μέσα στις δικές τους εφαρμογές C. Μόλις φορτωθεί η εικόνα, οι προγραμματιστές μπορούν εύκολα να εκτελέσουν διαφορετικές λειτουργίες στην εικόνα, όπως η ανάγνωση της εικόνας από το buffer, η τροποποίηση της εικόνας, η αποθήκευση της εικόνας σε μια συγκεκριμένη τοποθεσία και ούτω καθεξής. Μόλις τελειώσετε, θυμηθείτε να ελευθερώσετε το buffer με κανονικές λειτουργίες διαχείρισης μνήμης.