C Png Fotoğraf Ekleme

C PNG Fotoğraf Ekleme: Kapsamlı Bir Kılavuz

Giriş

PNG (Taşınabilir Ağ Grafikleri), web’de yaygın olarak kullanılan kayıpsız bir görüntü formatıdır. Şeffaflığı destekler ve hem web hem de baskı uygulamaları için uygundur. C programlama dilinde PNG fotoğrafları eklemek, görüntülerin web sayfalarına, uygulamalara ve diğer dijital ortamlara sorunsuz bir şekilde dahil edilmesini sağlar.

PNG Dosyalarını Okumak

PNG dosyalarını C’de okumak için libpng kitaplığı kullanılır. Bu kitaplık, PNG dosyalarını ayrıştırmak ve görüntünün piksel verilerini almak için işlevler sağlar.

“`c

include

include

include

int main() {
FILE *fp = fopen(“image.png”, “rb”);
if (fp == NULL) {
perror(“Dosya açılamadı”);
return EXIT_FAILURE;
}

png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if (png_ptr == NULL) {
perror(“PNG yapısı oluşturulamadı”);
fclose(fp);
return EXIT_FAILURE;
}

png_infop info_ptr = png_create_info_struct(png_ptr);
if (info_ptr == NULL) {
perror(“PNG bilgi yapısı oluşturulamadı”);
png_destroy_read_struct(&png_ptr, NULL, NULL);
fclose(fp);
return EXIT_FAILURE;
}

png_init_io(png_ptr, fp);
png_read_info(png_ptr, info_ptr);

int width = png_get_image_width(png_ptr, info_ptr);
int height = png_get_image_height(png_ptr, info_ptr);
png_bytep *row_pointers = png_get_rows(png_ptr, info_ptr);

// Piksel verilerini işle…

png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
fclose(fp);

return EXIT_SUCCESS;
}
“`

PNG Dosyalarını Yazmak

PNG dosyalarını C’de yazmak için de libpng kitaplığı kullanılır. Bu kitaplık, bir görüntünün piksel verilerini alır ve bir PNG dosyasına yazar.

“`c

include

include

include

int main() {
FILE *fp = fopen(“image.png”, “wb”);
if (fp == NULL) {
perror(“Dosya açılamadı”);
return EXIT_FAILURE;
}

png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if (png_ptr == NULL) {
perror(“PNG yapısı oluşturulamadı”);
fclose(fp);
return EXIT_FAILURE;
}

png_infop info_ptr = png_create_info_struct(png_ptr);
if (info_ptr == NULL) {
perror(“PNG bilgi yapısı oluşturulamadı”);
png_destroy_write_struct(&png_ptr, NULL);
fclose(fp);
return EXIT_FAILURE;
}

png_init_io(png_ptr, fp);
png_set_IHDR(png_ptr, info_ptr, width, height, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
png_write_info(png_ptr, info_ptr);

// Piksel verilerini yaz…

png_write_end(png_ptr, info_ptr);
png_destroy_write_struct(&png_ptr, &info_ptr);
fclose(fp);

return EXIT_SUCCESS;
}
“`

Faydalı Siteler ve Dosyalar

Sonuç

C programlama dilinde PNG fotoğrafları eklemek, görüntülerin web sayfalarına, uygulamalara ve diğer dijital ortamlara sorunsuz bir şekilde dahil edilmesini sağlar. libpng kitaplığını kullanarak PNG dosyalarını okumak ve yazmak, görüntülerin işlenmesi ve görüntülenmesi için güçlü bir temel sağlar.


Yayımlandı

kategorisi