image pixel to mm

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
prolcay
Üye
Mesajlar: 11
Kayıt: 04 Nis 2006 02:23

image pixel to mm

Mesaj gönderen prolcay »

merhaba arkadaşlar
forumda arama yaptım ama sağlıklı bi sonuç bulamadaım

bana image nesnesinde açtığım bir resimin 1 cm sinde ne kadar pixel oldığu lazım.
forumdaki sonuçlarda bu işi yazıcı için yapmışlar ama getdevice fonksiyonunu image nesnesine uygulamıyoruz tabiki:)

cevaplar için şimdiden teşekkürler
mr_nemesis
Üye
Mesajlar: 16
Kayıt: 16 Mar 2004 01:54
Konum: Ankara
İletişim:

Re: image pixel to mm

Mesaj gönderen mr_nemesis »

Bu işinizi görür sanıyorum

Kod: Tümünü seç

procedure PixelToMM(Canvas: TCanvas; var x, y: Single) ;
var
    H:HDC;
    hres,vres,
    hsiz,vsiz:integer;
begin
    H:=canvas.handle;
    hres := GetDeviceCaps(H,HORZRES) ;
    vres := GetDeviceCaps(H,VERTRES) ;
    hsiz := GetDeviceCaps(H,HORZSIZE) ;
    vsiz := GetDeviceCaps(H,VERTSIZE) ;
    x := hres/hsiz;
    y := vres/vsiz;
end;
prolcay
Üye
Mesajlar: 11
Kayıt: 04 Nis 2006 02:23

Mesaj gönderen prolcay »

cevabın
için teşekkürler
ama bi terslik var
her resimde aynı sonucu veriyor
hepsinde 3.51 gibi bi sonuç geliyo
ya ben yanlış kullanıyorum yada bişiler sabit kalıyor
ama çözemedim
mr_nemesis
Üye
Mesajlar: 16
Kayıt: 16 Mar 2004 01:54
Konum: Ankara
İletişim:

Mesaj gönderen mr_nemesis »

ahh kusura bakmayın fonksiyon adını düzeltmeyi unutmuşum

Kod: Tümünü seç

procedure PixelPerMM(Canvas: TCanvas; var x, y: Single) ;
var
    H:HDC;
    hres,vres,
    hsiz,vsiz:integer;
begin
    H:=canvas.handle;
    hres := GetDeviceCaps(H,HORZRES) ;
    vres := GetDeviceCaps(H,VERTRES) ;
    hsiz := GetDeviceCaps(H,HORZSIZE) ;
    vsiz := GetDeviceCaps(H,VERTSIZE) ;
    x := hres/hsiz;
    y := vres/vsiz;
end;
olmalı aslında. Buradan dönen x ve y değişkenleri yatay ve dikey eksende kaç pixel'in 1 mm'ye denkgeldiğini söyler.

http://www.efg2.com/Lab/Library/Delphi/ ... DeviceCaps
prolcay
Üye
Mesajlar: 11
Kayıt: 04 Nis 2006 02:23

Mesaj gönderen prolcay »

ya yine teşekkür ediyorum
fakat burda device denildiğinde bilgisayar image yerine yazıcının boyutlarıyla ilgili bilgileri veriyo
yani o yüzden hep ayynı çıkıyorumuş

ama yinede çok teşekkür edierim
kolay gelsin
mr_nemesis
Üye
Mesajlar: 16
Kayıt: 16 Mar 2004 01:54
Konum: Ankara
İletişim:

Mesaj gönderen mr_nemesis »

prolcay yazdı:ya yine teşekkür ediyorum
fakat burda device denildiğinde bilgisayar image yerine yazıcının boyutlarıyla ilgili bilgileri veriyo
yani o yüzden hep ayynı çıkıyorumuş

ama yinede çok teşekkür edierim
kolay gelsin
bu prosedür yazıcının değil canvasın handle'ı üzerinden çalıştığından verdiği değer ekranda kaç pixelin 1 mm olduğudur. aynı nedenle de çözünürlüğünüzü değiştirdiğinizde değer değişecektir. Örneğin sizde bu değer 3.51 çıkmış. bu demektirki 1cm de 35.1 adet pixel bulunur(sadece bir line olduğu durumda tabii) bu değeri baz alarak istediğiniz hesabı yapabilmeniz gerekir. eğer sizi yanlış anlamadıysam tabii :)
prolcay
Üye
Mesajlar: 11
Kayıt: 04 Nis 2006 02:23

Mesaj gönderen prolcay »

galiba yanlış anlattım

şöyleki bi resim düşün eni 9 cm 360 pixel
değer 3.51
bir diğer resim en 1 cm 10 pixel
değer 3.51
başka bi resim eni 1 cm 27 pixel
değer yine 3.51

yani bu oranın değişmesi gerekmezmi?
mr_nemesis
Üye
Mesajlar: 16
Kayıt: 16 Mar 2004 01:54
Konum: Ankara
İletişim:

Mesaj gönderen mr_nemesis »

prolcay yazdı:galiba yanlış anlattım
bir diğer resim en 1 cm 10 pixel
değer 3.51
başka bi resim eni 1 cm 27 pixel
böyle bir durum olamaz. Bir bilgisayarda hem 10px hemde 27px 1cmye eşdeğer olmaz(aynı çözünürlük ayarlarıyla). resmi oluşturan en küçük parçaya pixel diyoruz ve bunun her çözünürlükteki mm değeri sabittir.

http://en.wikipedia.org/wiki/Pixel

örneğin 600*800 çözünürlükte 3 oranını alıyorsunuz. 1200*1600 çözünürlüte bu oran 6 olacaktır. burda bahsi geçen çözünürlük resmin değil ekranın çözünürlüğü bu arada. ekrandan resme bakarken 1mmlik düzlemde kaç pixel gördüğünüzü verir bu foksiyon. buradan aldığınız oran ile resmin mm değerlerini siz hesaplamalısınız. umarım işini görür
prolcay
Üye
Mesajlar: 11
Kayıt: 04 Nis 2006 02:23

Mesaj gönderen prolcay »

teşekkürler
boreas
Üye
Mesajlar: 120
Kayıt: 05 Tem 2007 12:39
Konum: Ankara

Re: image pixel to mm

Mesaj gönderen boreas »

Çok zaman geçiş ama okuyan için söyleyeyim. Her resmin bir DPI değeri vardır 1inch deki piksel sayısını belirtir. Bu değere göre baskı boyutunu hesaplarsınız. dpi 72 olur ufacık resim 10cm. denk gelir dpi 300 olur aynı resim 2cm. denk gelir. DPI olmadan piksel - cm ya da mm çevrimi yapamazsınız.
....
Cevapla