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
- libpng Kitaplığı
- PNG Dosya Biçimi
- PNG Görüntüleri ile Çalışmak İçin C Kodu Örnekleri
- PNG Dosyası Okuyucu ve Yazarı
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.