LibGD
Qabaqcıl Şəkil Emalı üçün Açıq Mənbə C Kitabxanası
Tərtibatçılara şəkilləri sürətlə çəkməyə, xətlər, qövslər, mətnlər, çoxlu rənglər əlavə etməyə və nəticəni PNG və ya JPEG faylı kimi yazmağa imkan verən pulsuz C API.
Rəqəmsal şəkillər həmişə sadə mətndən daha çox ziyarətçi cəlb edir. Bir şəkil min söz dəyərindədir. Onların 94% daha çox baxış cəlb etmək və daha çox ziyarətçi cəlb etmək gücü var. Şəkillərdən istifadə edərək mesajlarınızı çatdırmaq həmişə daha məhsuldar və rahatdır. LibGD açıq mənbə kitabxanası proqramçılara tez şəkillər çəkməyə, xətlər, qövslər, mətnlər, çoxlu rənglər əlavə etməyə və nəticəni PNG və ya JPEG faylı kimi yazmağa imkan verir.
LibGD proqram tərtibatçılarına C proqramları daxilində şəkilləri dinamik şəkildə yaratmağa və idarə etməyə kömək edən güclü qrafik kitabxanadır. Kitabxana BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM və s. kimi bir çox müxtəlif şəkil formatlarını oxuya və yaza bilər. LibGD kitabxanası ümumiyyətlə veb saytların inkişafı üçün istifadə olunur, lakin istənilən müstəqil proqram ilə də istifadə edilə bilər. Kitabxana şəkillərin yaradılması və manipulyasiyası üçün qrafiklər, qrafiklər, miniatürlər və digər hər şeyi tez bir zamanda yaratmaq kimi bir sıra vacib funksiyaları özündə birləşdirir.
LibGD ilə işə başlamaq
LibGD-ni quraşdırmanın tövsiyə olunan yolu CMake-dən istifadə etməkdir. Düzgün quraşdırmalar üçün aşağıdakı əmrdən istifadə edin
GitHub vasitəsilə LibGD quraşdırın.
$ make install
Aşağıdakı əmrdən istifadə edərək ən son mənbələri klonlayın
GitHub vasitəsilə LibGD quraşdırın.
$ git https://github.com/libgd/libgd.git
C vasitəsilə şəkillər yaradın və dəyişdirin
LibGD kitabxanası şəkilləri asanlıqla yaratmaq və manipulyasiya etmək imkanı verir. Bu, sadəcə bir neçə sətir C kodu ilə BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM fayl formatlarında şəkillərin yaradılmasından istifadə etməyə imkan verir. Kitabxananın əla xüsusiyyəti ondan ibarətdir ki, o, tez bir zamanda şəkillər yaratmağa imkan verir. Kitabxana veb səhifələrdə istifadə oluna bilən tez şəkillər yaratmaqla tanınır. O, sizə proqramlı şəkildə şəkil yaratmağa, onu rəngləndirməyə, üzərinə çəkməyə və asanlıqla diskdə saxlamağa imkan verir.
C API vasitəsilə Şəkillər yaradın və dəyişdirin
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 Kitabxanası vasitəsilə şəklin ölçüsünü dəyişdirin
Açıq mənbəli LibGD kitabxanası kompüter proqramçılarına tətbiqlərindəki C əmrlərindən istifadə edərək şəkillərinin ölçüsünü dəyişdirməyə imkan verir. Başlamaq üçün yükləmə üçün şəklin tam yolunu və adını təqdim etməlisiniz. Bunu etdikdən sonra siz yeni şəklinizin enini və hündürlüyünü və onu saxlamaq istədiyiniz yerdə seçdiyiniz çıxış yerini təmin etməlisiniz. Kitabxananın onu qəbul etməməsi və istisna etməməsi istisna olmaqla, bütün təqdim olunan məlumatların düzgün olduğundan əmin olun.
C API vasitəsilə Şəklin ölçüsünü dəyişdirin
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;
}
C API vasitəsilə şəkilləri kəsin, çevirin, çevirin və ya fırladın
LibGD kitabxanası C əmrlərindən istifadə edərək şəkillərin proqramlı şəkildə kəsilməsi və Flipping üçün tam dəstəyi təmin etmişdir. Kitabxana şəkli çevirmək üçün çoxlu funksiyalar təqdim etmişdir, məsələn, şəkli üfüqi və ya şaquli, eləcə də hər ikisi ilə çevirmək. Fırlatma kimi, onu öz ehtiyaclarınıza uyğun olaraq asanlıqla döndərə bilərsiniz. Bitirdikdən sonra şəkilləri asanlıqla saxlaya bilərsiniz. O, həmçinin PNG və JPEG şəkillərini digər dəstəklənən fayl formatlarına çevirmək üçün dəstək verir.
PNG şəklini C API vasitəsilə AVIF-ə çevirin
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;
}
Şəkil Yaddaşda Buferdən Yüklənir
LibGD açıq mənbə kitabxanası proqram tərtibatçılarına öz C proqramları daxilində yaddaşda bufer saxlamaq üçün bütün təsviri yükləməyə imkan verir. Şəkil yükləndikdən sonra tərtibatçılar təsvir üzərində müxtəlif əməliyyatları asanlıqla yerinə yetirə bilərlər, məsələn, buferdən təsviri oxumaq, təsviri dəyişdirmək, şəkli müəyyən bir yerə saxlamaq və s. Tamamlandıqdan sonra normal yaddaş idarəetmə funksiyaları ilə buferi boşaltmağı unutmayın.