1. * 5651 Sayılı Kanun'a göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur.
    * Telif hakkına konu olan eserlerin yasal olmayan şekilde paylaşıldığını ve yasal haklarının çiğnendiğini düşünen hak sahiplerinin İLETİŞİM bölümünden bize ulaşmaları durumunda ilgili şikayet incelenip gereği 1 (bir) hafta içinde gereği yapılacaktır.
    E-posta adresimiz

[JAVA] Bit Seviyesinde BMP Dosya Okuma-Yazma-Erişme (Sadece 8 Bit Renk İçin)

Konusu 'Programlama Dilleri' forumundadır ve merakettim tarafından 10 Temmuz 2016 başlatılmıştır.

  1. merakettim
    Ecinni

    merakettim Öpözel Üye :*

    Katılım:
    19 Temmuz 2006
    Mesajlar:
    1.931
    Beğenileri:
    323
    Ödül Puanları:
    2.230
    Meslek:
    Ne iş olursa yaparım abi
    Yer:
    leşim ANKARA:)
    Banka:
    1.432 ÇTL
    BMP dosyalarının çalışma mantığı, bir renk katarı oluşturulur. Örneğin renk tablomuzda 3 farklı renk olsun. Bunlar kırmızı,yeşil ve mavi olsun. Renk katarımız şu şekilde olmalı.


    16lık sayı düzleminde ilk 2 basamak mavi, sonraki iki basamak yeşil, sonraki iki basamak kırmızı ve en yüksek 2 basamak saydamlık temsil eder.

    renkler[x]=sskkyymm

    renkler[0]=00ff0000//kırmızı
    renkler[1]=0000ff00//yeşil
    renkler[2]=000000ff//mavi


    Daha sonra data kısmı bulunur. Bu data kısmı en ve boy'un çarpımı kadardır. 5 piksel en ve 10 piksel boy olsun. Toplamda 5x10=50 adet datamız bulunacak. Bu dataların her biri temsil ettikleri pikselin renginin adresini "renkler" dizimizdeki elemanını gösterir. Mesela ilk satır tamamen mavi, ikinci satır bi mavi bi kırmız bi yeşil ve kırmızı,kırmızı olsun. Son satır ise tamamen yeşil olsun.

    data[0]=2;
    data[1]=2;
    data[2]=2;
    data[3]=2;
    data[4]=2;

    data[5]=2;
    data[6]=0;
    data[7]=1;
    data[8]=0;
    data[9]=0;

    data[..]=..;

    data[45]=1;
    data[46]=1;
    data[47]=1;
    data[48]=1;
    data[49]=1;

    BMP Dosyası Başlığı


    Konumu|Uzunluk|Açıklama
    0|2|Bu standarttır. Dosyanın BMP olduğunu belirtir. 0x4D42 olmalıdır.
    2|4|BMP dosyasının toplam uzunluğu.(Kaç Bayt)
    6|2|Ayrılmış alan 0 olmalıdır.
    8|2|Ayrılmış alan 0 olmalıdır.
    10|4|Resmin datalarının bulunduğu adresin başlangıcı.
    14|4|BMP tanıtım başlık yapısı, 40 olmalıdır.
    18|4|Resim genişliği. Piksel bazında.
    22|4|Resim yüksekliği. Piksel bazında.
    26|2|Görüntüdeki plan sayısı, 1 olmalıdır.
    28|2|Piksel başına datada kaç bit ayrılacağı (1, 4, 8, veya 24)
    30|4|Sıkıştırma türü (0=sıkıştırma yok, 1=RLE-8, 2=RLE-4)
    34|4|Görüntüde kaç data kullanılacağı.
    38|4|Metre başına piksel cinsinden yatay çözünürlük.
    42|4|Metre başına piksel cinsinden dikey çözünürlük.
    46|4|Görüntüdeki renk sayısı.
    50|4|Görüntüdeki önemli renk sayısı.

    (Tablo ekleyemediğimden karışık oldu. | işaretiyle ayırın :))

    BMPDosya.java

    Kod:
      Kodları görebilmek için ÜYE omalısınız !
    Sınıf Çağrısı

    Kod:
      Kodları görebilmek için ÜYE omalısınız !
     

Sayfayı Paylaş