Bitmap file

Başlatan murats123, 15 Kasım 2005, 22:04:13

murats123

Arkadaşlar bitmap file in yapısı nasıldır, visualbasic kullanarak veya hazır bir program kullanarak yapısını  nasıl değiştirebiliriz,örneğin bir bmp dosyayı yazıcıdan yazarken araya bir satır boşluk koymak gibi,yani resmi basarken bir satır yazacak bir satır boş bırakacak.teşekkürler.

g6n

ilk once klasik bir cevap yazayim internette byte byte anatimi var saka olsun diye yazmiyorum lazim olacak.
kisaca soyle ozetliyeyim bu dosya yapisi iki bolumden olusmakta ve en basit resim formatidir. birinci bolum ikinci bolumun ozelliklerinin saklandigi bilgileri icerir mesela 2 bolumun dosyadaki baslangic adresi,piksellerin kac byte ile ifade edildikleri, yatay dikey buyukluk gibi bence ornek ile aciklanmasi cok daha kolay herhangi bir resim programinda 50x100 luk bir resim yaratip bmp olarak kayit et (tek renk olsun baslangic icin) tek renk sectigimiz icin 50/8=6.25 uzerine tamamla 7, 100/8=12.5 yukari tamamla 13 sonuc dosyanin on taraflarinda bir yerde 06 ve biraz yakinlarinda 0d gibi iki byte bulacaksin iste bunlar resmin boyutlarinin saklandigi alanlardir. senin sordugun uzere bu boyurlar ile oynayip gerekli satirlara ilave yaparsan resmin satir veya sutun olarak acmis olursun. resim tek renk ise pikseller bir bit ile ifade edilir derinlik 256 renk ise bir byte rgb ise 3 byte'tir herhangi bir formatta resmin baslangicini son derece basit olarak soyle bulursun (tavsiyem internetteki formatlari okumandir ama) ornekteki resmi tam siyah olarak kayit et daha sonra baska bir isim ile tam beyaz olarak kayit et iki dosyayi ayni anda herhangibir hex editor programinda incelediginde birinde 00 00 00 00 diye bir bolum goreceksin digerinde ise ayni bolumler ff ff ff ff olacaktir bu zincirin en basi ise ikinci bolumun baslangic adresini verir.
umarim faydali olmuştur takildigin yer olursa tekrar yaz.
iyi calismalar

murats123

G6n arkadaşım cevap yazmam biraz uzun sürdü, ama  bmp file  in yapısını ancak anlayabildim, allahtan şansım yardım etti internnetten  010 editör diye bir hex editör ü buldum , bu editor bmp  dosyayı  bayt bayt kısımlarına ayırıyor bu benim için çok kolay oldu  öbür türlü hesaplamayla zor anlardım yapısını.
    Yaptığım printer da baya bir baskı aldım,sana sonuçları açıklayayım.Printer ilk 38  adet satırı  (yani  resmi oluşturan line  ları tek seferde  yani bir geçişte basıyor ,editor bunları "struct BİTMAPLİNE line" diye ayırıp numara vermiş.39 line olunca bu sefer tek seferde değilde 4-5 seferde  basıyor.Şimdi  ben editor üstünde  elle   araya boşluk vererek denedim sonuç olumlu yani yeteri kadar boşluk verdiğimiz zaman satırlar üst üste basılmıyor.
 
   Şimdi  baştan itibaren ilk 38 line olduğu gibi bırakıyoruz, 39. line dan 157. line kadar boşluk koyuyoruz (editor buralara hex FF koyuyor) 158. line dan  itibaren orjinal bmp dosyamızdaki 39.  line dan  itibaren bir 38 daha line alıp yeni oluşturduğumuz dosyaya  kopyalıyoruz ,tekrar bir önceki aşamada olduğu gibi  boşluk bırakıyoruz, böylece yeni bir bmp dosya oluşturursak  printer istediğimiz dosyayı doğru yazacak, eğer visual basic te bir program yazabilirsen  bende biraz anlarım.Şimdiden yardımların için çok teşekkür ediyorum.

01editor linki:

http://www.sweetscape.com/010editor/

g6n

bana bir ornek dosya gonderirsen daha fazla yardimci olabilirim mesela orjinal dosyan ve degistirildikten sonraki dosyan olursa senin icin bir transfer programi yazarim. yarindan itibaren 10 gunluk bir sure icin nette olamayacagim senin icinde uygunsa donusumde hallederim.
iyi calismalar
g6n

murats123

Arkadaşım resimleri aşağıdaki linke attım kolay gelsin.



http://rapidshare.de/files/9836061/bmpresim.rar.html