1

Konu: text to bitmap

formlarda kullandığımız bitmapları run time esnasında oluşturmak



Local lcImage
TEXT TO lcImage NOSHOW
        424D0E0600000000000036000000280000001D000000110000000100180000000000D8050000C40E0000C40E00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFFFFFFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FF8080000000FFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FF8080FF8080000000FFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FF8080FF8080FF80800000008080808CFFC60080000080000080000080000080000080000080000080000080007070705058508CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFF808080808080808080808080808080808080FF8080FF8080FF8080FF80800000008CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFF808080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF80800000008CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFF808080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF80808080800080000080000080008CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFF808080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF8080FF80800000008CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFF808080808080808080808080808080808080FF8080FF8080FF8080FF80800000008CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FF8080FF8080FF80800000008080808CFFC60080000080000080000080008CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FF8080FF8080000000FFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FF8080000000FFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFFFFFFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
ENDTEXT
STRTOFILE(STRCONV(m.lcImage,16),"deneme.bmp")

TEXT TO lcImage NOSHOW
        424DFE04000000000000360000002800000018000000110000000100180000000000C8040000C40E0000C40E00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC6008000008000008000008000008000008000008000008000008000707070505850000000D5DCDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6A0A0A0D5FFFF5090B0101010D8E1E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC68CFFC6E5EEE5E5EEE5E5EEE5E3ECE3A8BBA998AB96B3BEAF8CFFC6A0A0A090B8C070D0E05098B0101010D8E1E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC6008000ACCCAC638A676C8A6F558958468C4F2A6E3645734C8CFFC68CFFC650A0B090E0F060C0D05098B0101010CBD8D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC68CFFC6D7E7D769A7702F823842914B529F5F367B436F9B778CFFC68CFFC68CFFC650A0B090E0F060C0D05098B0101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC68CFFC6E5EEE5A4CEA65BA96264AE71307B3C448348CDE1CC8CFFC68CFFC68CFFC68CFFC660A8B090E0F060C0D05098B0101010CFDBDBFFFFFFFFFFFFFFFFFFFFFFFF8080808CFFC6008000C3DCC479B8806FB7794B9455418D4729852B8CBC8A8CFFC68CFFC68CFFC68CFFC680808070B0C090E0F070C8E0808880303890BEC0D7FFFFFFFFFFFFFFFFFF8080808CFFC68CFFC694C4976BB27276B67FA6C5AD82AC8645894B518D538CFFC68CFFC68CFFC68CFFC6808080DFE7EB80B0C0D0B8B07088D06070B0303890FFFFFFFFFFFFFFFFFF8080808CFFC68CFFC6EDF5EDD9E9D9E5EEE5E5EEE5EBE4DED4CBBFE8E3DD8CFFC68CFFC68CFFC68CFFC6808080FFFFFFDFE7EB6070B07090E06078D06070B0FFFFFFFFFFFFFFFFFF8080808CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC68CFFC6808080FFFFFFFFFFFFD2D7EB6070B06070B0E1E5F3FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
ENDTEXT
STRTOFILE(STRCONV(m.lcImage,16),"excel.bmp")


Bu kodu çalıştırınca bmp dosyalar oluşuyor.
Bunun tam tersi için ne yapmak lazım ?

lctxt=filetostr(imagefile)
burada oluşan lctxt binary dosya, bunu yukarıdaki örneğe uyarlamak için hex stringe mi çevirmeliyiz?

Selamlar....

2

Re: text to bitmap

lctxt=Filetostr("deneme.bmp")
lcdosya=Fcreate("deneme.txt")
Fputs(lcdosya,Strconv(lctxt,15))
Fclose(lc dosya)

deneme.txt edit edilip
içindeki bilgiler text içine konulursa aynı bmp dosya elde ediliyor...

Local lcImage
TEXT TO lcImage NOSHOW
     .......deneme.txt dosyasının içeriği...............   
ENDTEXT
STRTOFILE(STRCONV(m.lcImage,16),"deneme.bmp")

3

Re: text to bitmap

Bunun amaci ne ola ki:)

Cevrime bile gerek yok aslinda, BLOB olarak kullan yeter.

Visual Fox Pro
lcBin = 0h424D0E06

 
lcText = "424D0E06"
 
lcConv = Strconv(m.lcText,16)
 
lcTemp1 = ForcePath( 'deneme1.bin', Sys(2023))
lcTemp2 = ForcePath( 'deneme2.bin', Sys(2023))
StrToFile(m.lcBin,m.lcTemp1)
StrToFile(m.lcConv,m.lcTemp2)
 
lcBack1 = FileToStr(m.lcTemp1)
lcBack2 = FileToStr(m.lcTemp2)
 
clear
? m.lcBack1
? m.lcBack2
? m.lcBack1 == m.lcBack2
 
? Strconv(m.lcBack1,15)
? Strconv(m.lcBack2,15)
 
Erase (m.lcTemp1)
Erase (m.lcTemp2)

4

Re: text to bitmap

Çetin hocam merhaba,

yaptığım projede graphics klasörünü inceleyip,
oradaki icon, bmp v.s. dosyaları kendi logolarıyla
değiştirebilecek kabiliyetli kullanıcılar var. Run time esnasında
temp klasöründe bunları oluşturup,
programdan çıkarken de o dosyaları sileceğim.

Yanlış mı yapıyorum bilemiyorum ama,
projemde kullandığım graphics'leri ben exclude ediyorum.
Böylece exe boyutu daha küçük oluyor.

Ama olmazsa olmaz bazı buton, menü,treeview v.s.deki
kullandığım küçük ikonları yukarıdaki gibi text'den oluşturmak
mantıklı gibi geldi?

Selamlar...

5

Re: text to bitmap

radiokaos

Exe nin boyunun küçük olması bence artık çok önemli değil.
Bende çok  eskiden projelerimi bir kaç exe ye bölüyordum.

Şimdi sadece tek exe yapıyorum. 

Makinaların bellekleri 2GB - 4 GB gibi rakamlar.  Benim exe  50MB olsa bir şey olmaz.

Hatta ben resimleri bile çok büyük boyutlarda değilse exe nin içine gömüyorum.

6

Re: text to bitmap

Doğru,
sizde haklısınız fakat, halen daha eski cpular üzerine kurulu XP ler var. 256 yada 512 ramle çalışan...
İşi sadece data girmek...Programlarda basit sade bir form üzerinde hızlı bir şekilde belge
kayıdı yapıyorlar mesela....
Diğer bir hususda graphics dosyaların ayrı olması bir nevi avantaj,
farklı bir firmaya exe programı derlemeden sadece ihtiyaç kadar
graphics dosyasını change edip verebiliyorsunuz.
Ki benim programlarımda versiyon kontrolu var. Sql server connection anında
versiyon farklı ise onu indirip kullanıcıya otomatik geliyor...
Dolayısıyla exe boyutu neredeyse 1.5 -2 mb arası, iş son derece stabil ve hızlı...

Saygılar...

7

Re: text to bitmap

Hayir exenin boyunu kucultmus degil buyutmus oluyorsun. Binary halinde 100K yer tutan bir image sen onu hexe cevirince 2 kati yani 200K yer tutuyor. Include et olsun bitsin.

8

Re: text to bitmap

Ikincisi exenin boyutu ile hizli calismasi dogru orantili birsey degil.

imageleri eger istersen external olarak ama binary halinde bir tabloda saklayabilirsin. Oynamasinlar istiyorsan sifreleyebilirsin de.

9

Re: text to bitmap

Çetin hocam,

Exenin boyutu remote şubeden çalışan client'larda yeni versiyon
update edilirken önem kazanıyor....Hızdan kastım oydu.

Ama sizde haklısınız...
En güzeli blob olarak bir tableda saklamak.
Yada hiç uğraşmadan exeye include etmek...
10 sn bekleyeceğine 1.5 dakika beklesin...
Biz ince düşünelim derken kendi kendimizi yoruyoruz....

Saygılar..