Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

bmp ili jpg slika i stvarne dimenzije

[es] :: Pascal / Delphi / Kylix :: bmp ili jpg slika i stvarne dimenzije

Strane: 1 2

[ Pregleda: 5170 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon bmp ili jpg slika i stvarne dimenzije07.12.2017. u 09:25 - pre 76 meseci
Delphi XE 10.1

Imam sliku sa scaner-a.
Veličina slike: W: 1903, H: 188. Stvaran veličina: 161.12 x 15.92 mm

Slika može biti bmp ili jpg.
Da bih iz Width i Hight dobio veličinu u mm (koliko sam shvatio) treba mi DPI, ali kako dobiti DPI?
Rovao po netu-ništa iskoristivo. Pronašao sam:
Code:

try
    Result := 0;
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    Stream.Position := 38;
    if Stream.Read(Data, 2) = 2 then
    begin
      A := Data;
      Result := Round(A / 39.370079);
    end;
  finally
    Stream.Free;
  end;


meni vraća 0 za bmp koji je iz scanera. Za sliku koja je pohranjena iz gimp-a očita podatke ispravno.
Gimp za bmp iz scaner-a uredno očita veličinu.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 09:43 - pre 76 meseci
> Da bih iz Width i Hight dobio veličinu u mm (koliko sam shvatio) treba mi DPI, ali kako dobiti DPI?

Code:

var
  HorPictureRes, VerPictureRes: Double; // Rezolucija slike u tackama po mm
  BmpStream: TStream;
  FileHeader: TBitmapFileHeader;
  Info: TBitmapInfo;
begin
  // saznajemo rezoliciju slike, ova informacija se cuva u headeru bitmap fajla
  BmpStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyNone);
  try
    BmpStream.Read(FileHeader, SizeOf(FileHeader));
    BmpStream.Read(Info, SizeOf(Info));
    // Broj piksela po metru delimo sa 1000 kako bi dobili broj piksela po mm
    VerPictureRes := Info.bmiHeader.biYPelsPerMeter / 1000;
    HorPictureRes := Info.bmiHeader.biXPelsPerMeter / 1000;
  finally
    BmpStream.Free;
  end;

  // Ako u fajlu bitmape nije postojala informacija o rezoluciji onda uzimamo standardnu rezoluciju slike od 72 piksela po incu
  if VerPictureRes <= 0 then
    VerPictureRes := 72 / 25.4;
  if HorPictureRes <= 0 then
    HorPictureRes := 72 / 25.4;
  ...
end;



> meni vraća 0 za bmp koji je iz scanera. Za sliku koja je pohranjena iz gimp-a očita podatke ispravno. Gimp za bmp iz scaner-a uredno očita veličinu.

Štos je što upis rezolucije u header bitmmape nije obavezan pa većina programa ostavi prazno, otuda ovaj drugi blok sa pretpostavkom od 72dpi.

[Ovu poruku je menjao savkic dana 07.12.2017. u 11:10 GMT+1]
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 09:59 - pre 76 meseci
Hvala. Probat ću.

Nedostaje ti definicija var "Info"
Code:

 BmpStream.Read(Info, SizeOf(Info));


što je "Info" ?

Zanemari, našao: Info: TBitmapInfo;

A što je s JPG? Ova funkcija ne radi na JPG file-u?

[Ovu poruku je menjao FranjoZG dana 07.12.2017. u 11:13 GMT+1]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 10:11 - pre 76 meseci
> Nedostaje ti definicija var "Info"

Info: TBitmapInfo;
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 12:01 - pre 76 meseci
Za BMP mi daje ispravne podatke.
Kako ih dobiti za JPG?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 13:00 - pre 76 meseci
>Za BMP mi daje ispravne podatke. Kako ih dobiti za JPG

Mislim da jpeg header nema tako nesto, odnosno jedino onaj EXIF prateci sadrzaj bi mogao pomoci. Probaj neki EXIF viewer i da li se vide ti podaci.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 14:24 - pre 76 meseci
Negdje mora postojati jer mi Gimp daje isprave podatke o stvarnoj veličini slike u mm.
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 16:15 - pre 76 meseci
Konvertuj sliku iz jpg u bmp, pa radi sa bmp.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije07.12.2017. u 16:24 - pre 76 meseci
Citat:
FranjoZG:
Negdje mora postojati jer mi Gimp daje isprave podatke o stvarnoj veličini slike u mm.


U pravu si, izgleda da ipak ima (vidim da Windows prijavljuje HRes i VRes kad se ide na properties slike). Kad dobijes rezoluciju dalje je isti princip za racunanje kao kod bitmape.
Quick search daje ovaj link sa kodom za jpeg, pa vidi da li radi u tvom slucaju:
https://stackoverflow.com/ques...ion-without-decoding-the-image
 
Odgovor na temu

MajorFatal
Milija Jakic
opravljam oluke, 1337LAB
Bg

Član broj: 36595
Poruke: 1325
*.dynamic.sbb.rs.



+557 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije08.12.2017. u 00:01 - pre 76 meseci
Citat:
FranjoZG:
Negdje mora postojati jer mi Gimp daje isprave podatke o stvarnoj veličini slike u mm.


Nije to neka specijalno stvarna veličina slike u mm, nego više kao predvidjena veličina kad se odštampa pod tim i tim kvalitetom štampe a što označava mera dpi (drops per inch - kapljica koje će štampač da ispljucka na papir, podlogu) tako da ako za istu sliku promeniš vrednost dpi što se lako radi u bilo kom grafičkom programu, program će te izvestiti koja je nova predviđena "stvarna" veličina slike u mm (kad se odštampa).

Na primer ako ti je slika kvaliteta 72dpi izvesti te da je "stvarna" veličina na koju možeš da odštampaš 1,5x2 metra, ako povećaš vrednost na 300dpi za tu istu sliku izvestiće te da je veličina 40x50 Cm na primer, 300dpi je najčešća vrednost koju traže za štampu ali to se odnosi na novine koje čitaš sa rastojanja ne većeg od pola metra tj. pred nosom su ti, ako bi trebalo da odštampaš bilbord pretpostavljam da možeš da ostaviš i 72 dpi, dpi ne mešaj sa ppi (pixel per inch) mada nisam siguran da nije ista vrednost u pitanju (služi za odredjivanje prikaza na ekranu).

Ako ti je za neku utehu i od pomoći mislim da je za bmp i jpg identična vrednost dpi, to jest zavisi samo od rezolucije same slike ne i od kvaliteta i količine informacija koju nosi...znači ako je slika 1024x800 pixela rezolucije za istu vrednost dpi izvestiće te da možeš da štampaš isti format a da bude lepo vidljiv bez obzira da li je slika bmp ili jpg formata (hm, možeš i 72 dpi da štampaš za novine ali će slika biti vidljivo zrnasta/pikselizovana).

Citat:
Milan Milosevic:
Konvertuj sliku iz jpg u bmp, pa radi sa bmp.


Jpg je kompresovana verzija slike iz bmp ili nekog sličnog raw formata i to je u pitanju lussy kopresija a ne lusseless tj. ona sa gubitkom informacija a ne varijanta koja ne gubi podatke, tako da ne može tek tako da je vrati u bmp varijantu, bar ne a da zadrži info koji je slika originalno imala, za samu vrednost dpi izgleda nije bitno ali za nešto drugo može da bude, a i čudi me da program koji imam prikazuje iste dimenzije za štampu obe varijante slike, skoro sam slao nešto nekom štamparu tvrdi da je bolje kad pošaljem bmp varijantu iste slike nego jpg...

I da dodam da sam bio i na nekim grafičkim forumima ali da nigde nisam pročitao ništa smisleno o rezoluciji oka, ekrana, slike na ekranu i slike u štampi...
Nemoj da pricas?
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije08.12.2017. u 09:15 - pre 76 meseci
Najbolje bi bilo da ako je izvodljivo skeniranu sliku snimiš u tiff foramtu jer tada sigurno dobijaš potreban podatak. Kao što neko već reče, BMP i JPG po definiciji ne moraju da sadrže podatak o gustini, već samo dimenzije u tačkama. Da li ćeš dobiti podatak o gustini u BMP ili JPG i šta će tu da piše to zavisi samo od programa koji te datoteke kreira. U svakom slučaju nije baš preporučljivo na to se oslanjati.

> I da dodam da sam bio i na nekim grafičkim forumima ali da nigde nisam pročitao ništa smisleno o rezoluciji oka, ekrana, slike na ekranu i slike u štampi...

U stvari je stvar jednostavna samo se komplikuje zbog nezgodne terminologije,odnosno raznih značenja reči rezolucija.

Evo ukratko:

Definičimo rezoluciju kao gustinu tačaka na jedinici površine. Najčešće se izražava kao dpi (dots per inch).

Dimenzije slike se izraćavaju u broju piksela po visini i širini slike.

Kada znamo dimenzije i rezoluicju ulazne slike, to znači da možemo da odredimo njene tačne dimenzije u centimetrima. Ovo ima smisla kod materijala koji zaista digitalizujemo sa nekog predloška koji zaista ima fizičke dimenzije. Ako isti predložak digitalizujemo većom rezolucijom, dobićemo veći broj tačaka po jedinici površine a rezultat će biti veće dimenzije slike u pikselima. Rezolucija digitalizovane slike je nadalje bitna SAMO ako nam je potrebno da rekreiramo kopiju tačnih fizičkih dimenzija. U ostalim slučajevima nam je rezolucija nebitna.

Kod prikaza digitalizovane slike bitna je rezolucija medija na kome je prikazujemo. Ako nam je potrebno prikažemo sliku zadatih dimenzija onda zait amoramo da znamo rezoluciju slike da bismo na osnovu te rezolucije i dimenzije slike i rezolucije medija na kome prikazujemo izracunali koliko sliku treba da smanjimo ili povećamo da bi prikaz bio zadatih dimenzija.

Međutim ako nam tačne dimenzije nisu bitne, već ćemo sliku prikazivati proizvoljnom veličinom, rezolucija nije bitna. Mnogo su bitnije dimenzije slike odnosno da su vće ili jednake dimenzijama potrebnim za prikaz.

Na primer, ako uzmemo sliku rezolucije 600 dpi a koja ima dimenzije 10 x 10 tačaka, to znači da su njene fizičke dimenzije veoma male. Ma koliko velika rezolucija da je, ona je i dalje ima samo 10 x 10 tačaka i to ni na ekranima sa malom rezolucijom neće da izgleda dobro ako se prikaže preko celog ekrana. Štaviše u grafičkim programima možemo da menjamo rezoluciju slike a da ne promenimo dimenzije u pikselima.

Kada je u pitanju prikaz na ekranu, koji je medij niske rezolucije (72 ili 96 dpi ili slično) i još povrh svega velična jedne tačke se razlikuje od ekrana do ekrana, prilično je komplikovan (a verovatno i besmislen) posao nastojati da se nešto prikaže tačnih fizičkih dimenzija. Kod takvog prikaza je bitno samo da slika ima dimenzije (u pikselima) koje su jednake ili veće onim dimenzijama (u pikselima) kojima će biti prikazane na ekranu.

U štampi je stvar drugačija. Velična tačke u štampi je standard i ona zaista omogućava da odredimo i prikažemo sliku tačno određenih dimenzija i ako je to potrebno, zaista je neophodno znati rezoluciju slike da bi se moglo prepračunati smanjenje ili povećanje slike da bi u štampi bila tačnih dimenzija.

Međutim, relativno je retka potreba da se slika štampa tačnih dimenzija u srazmeri sa predloškom. Češće je potrebno da slika bude neke određene veličine i u stvari je najbitnije da slika sadrži dovoljno tačaka po visini i širini da na zadatoj rezoluciji štampe zaista ima dovoljno informacija za kvalitetan prikaz.

Na primer, ako se digitalizuje slika veličine 1 x 1 cm rezolucijom od 300 dpi, ona će imati dimenzije 118 x 118px. Ako se štampa istom rezolucijom, fizičke maksimalne dimenzije te slike odštampane ne smeju biti veće od 1 x 1 cm jer slika nema dovoljno informacija za uvećanje. Međutim, ako istu sliku digitalizujemo rezolucijom 600 dpi, onda imamo više informacija (dimenzije u tačkama će biti 384x384px) i možemo je u štampi na 300 dpi prikazati dvostruko većom 2 x 2 cm. Dakle, u štampi nije nam bitno kolika je rezolucija slike koju štampamo nego kolike su njene dimenzije u piskelima da bismo znali da li imamo dovoljno tačaka da kvalitetno prikažemo sliku. U ovom primeru ako je slika 1 x 1cm skenirana rezolucijom 600 dpi, možemo je na 300 dpi štampati u bilo kojoj dimenziji ne većoj od 2 x 2 cm i imaćemo potreban kvalitet.

Svojevremeno sam za Svet kompjutera napisao jedan članak koji se ovoga dotiče: https://pedja.supurovic.net/se...je-za-casopis-svet-kompjutera/
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije08.12.2017. u 09:59 - pre 76 meseci
Evo ti procedura koja odreduje dimenzije za štampač
Code:

 Procedure OcitajParametreStampaca;
 Begin
   SirinaPapirauPix := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALWIDTH);
   VisinaPapirauPix := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALHEIGHT);
   SirinaPapiraumm := SirinaPapirauPix /
                      GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
   VisinaPapiraumm := VisinaPapirauPix /
                      GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY) * 25.4;
   BrPikselaPommY:=Printer.PageHeight / VisinaPapiraumm;
   BrPikselaPommX:=Printer.PageWidth / SirinaPapiraumm;
   YX_:=BrPikselaPommY/BrPikselaPommX;// vraca odnos visine i sirine
   XY_:=BrPikselaPommX/BrPikselaPommY;// vraca odnos visine i sirine
   MarginaX :=GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
   MarginaY :=GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);
   VisinaSlova:= Abs(MulDiv(printer.Canvas.Font.Size, GetDeviceCaps(Printer.Handle,LOGPIXELSY),72));
   RazmakIzmeduRedova;
   Stampaj_Rb_Stranice:=1; // setuje redni broj stranice novog dokumenta na 1
 End;
 
Odgovor na temu

MajorFatal
Milija Jakic
opravljam oluke, 1337LAB
Bg

Član broj: 36595
Poruke: 1325
*.dynamic.sbb.rs.



+557 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije09.12.2017. u 04:32 - pre 76 meseci
Citat:
FranjoZG:
Delphi XE 10.1

Imam sliku sa scaner-a.
Veličina slike: W: 1903, H: 188. Stvaran veličina: 161.12 x 15.92 mm

Slika može biti bmp ili jpg.
Da bih iz Width i Hight dobio veličinu u mm (koliko sam shvatio) treba mi DPI, ali kako dobiti DPI?

Gimp za bmp iz scaner-a uredno očita veličinu.


Čovek pita kako dobiti dpi, dpi se ne dobija dpi se zadaje, za svakodnevne potrebe i rad na računaru nam ne treba ali kad neko nešto hoće da odštampa on zadaje sa kojim dpi to hoće da se odštampa pa tako bira 300dpi za novine koje čitamo ispred nosa, 250 ili 150 dpi može za poster koji gledamo na zidu sa par metara udaljenosti, ili 72 dpi za neki bilbord pored puta ili preko zida cele zgrade jer ga gledamo sa par desetina metara udaljenosti najčešće, ako se približimo bilbordu na udaljenost sa koje najčešće čitamo novine vidimo da je vidno pikselizovan, zrnast, primećuje se svaka tačka farbe nanete na podlogu, naravno i bilbord može da se štampa kvalitetom 300dpi i tad bi štampa bila kvaliteta kao za novine i kad bi se približili ne bi primetili da je pikselizovan, ali nema potrebe obično se štedi i na farbi...

Da probam da sumiram ono što sam prethodno napisao i ovo sad u jednu rečenicu: Za poznatu rezoluciju slike u pikselima, bez obzira da li je slika bmp ili jpg, mogu se odrediti (maksimalne!) tačne dimenzije slike u štampi pod zadatim vrednostima dpi a koju smatramo za zadovoljavajući kvalitet štampe za predvidjene uslove gledanja. I to je ono što gimp očitava...po difoltu najčešće za 72 dpi...Tj. ne postoji "stvarna veličina slike".

Citat:
Predrag Supurovic:
U stvari je stvar jednostavna samo se komplikuje zbog nezgodne terminologije,odnosno raznih značenja reči rezolucija.
Evo ukratko:
Definičimo rezoluciju kao gustinu tačaka na jedinici površine. Najčešće se izražava kao dpi (dots per inch).
Dimenzije slike se izraćavaju u broju piksela po visini i širini slike.

Vidim kako je jednostavno po dužini teksta :)

Citat:
Predrag Supurovic:
Kada znamo dimenzije i rezoluicju ulazne slike, to znači da možemo da odredimo njene tačne dimenzije u centimetrima.


Pa ako već znaš dimenzije slike šta ima da odredjuješ dimenzije u centrimetrima? Samo prevedeš iz jedne jedinice mere - pikseli u drugu jedinicu mere - centimetri? :) Nema tu "odredjivanja" tačnih dimenzija nego samo konverzije? Šalim se, lepo objašnjenje znam šta hoćeš da kažeš, fin i tekst za sk, ali i dalje mislim da ne postoji bilo kakva "tačna dimenzija slike u centrimetrima" nego max dimenzija za štampu zadovoljavajućeg kvaliteta...Naravno ima smisla kad izlaganje započneš od skeniranja u toj i toj rezoluciji fizički postojeće neke odštampane već slike ili motiva, ali ako neko fotografiše nešto koje su "tačne dimenzije u centimetrima" takve fotografije?

On radi nešto, neki program za štampu ili šta već, u tom slučaju može i da vara, da namesti 150dpi kao minimum zadovoljavajući i da tvrdi da njegov program izbacuje veće formate za štampu nego gimp, ili nešto slično...

Nego mislio sam da može da se odredi rezolucija oka na osnovu toga što imamo 110 miliona receptora u oko ja kontao tu negde oko 10Mpix a sad čitam nešto čudno 576Mpix rezolucija oka ali 7Mpix bitnih za vidjenje...baš čudno.

https://curiosity.com/topics/y...-the-wrong-question-curiosity/

Nego ovo što mene zanima bmp ima podatke za svaki piksel valjda, a jpg je kompresovana varijanta sa nekim vrednostima nepovratno izgubljenim, nekako po logici bmp bi morao da može da se zadovoljavajuće štampa na veći format od iste slike jpg a program mi prijavljuje iste dimenzije...

Prva slika je bmp i jpg predvidjena veličina za štampu da je ista i kad se promeni na 300dpi sa 72 za koliko se predvidjena veličina smanji..



Druga slika je dve slike sa istim motivom jpg je napravljena od bmp ipak se vidi razlika u kvalitetu kad se povećaju na 500% pogled, i po logici bmp nosi više informacija i po ovom primeru vidljivo bmp bi morao da može da se štampa zadovoljavajuće na veće formate od jpg ali program ipak prijavljuje iste dimenzije?




[Ovu poruku je menjao MajorFatal dana 09.12.2017. u 05:43 GMT+1]


[Ovu poruku je menjao MajorFatal dana 09.12.2017. u 05:46 GMT+1]

[Ovu poruku je menjao MajorFatal dana 09.12.2017. u 05:47 GMT+1]
Nemoj da pricas?
Prikačeni fajlovi
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije09.12.2017. u 09:23 - pre 76 meseci
Pa kad se pogleda ovo tvoje objašnjenje onda postaje jasno zašto sam ja ono moje nazvao jednsotavnim i kratkim :) Uglavnom si ponovio ono što sam ja rekao )sa nekim entačnotima) ali na zbunjujui način :)

Citat:

Nego ovo što mene zanima bmp ima podatke za svaki piksel valjda, a jpg je kompresovana varijanta sa nekim vrednostima
nepovratno izgubljenim, nekako po logici bmp bi morao da može da se zadovoljavajuće štampa na veći format od iste slike
jpg a program mi prijavljuje iste dimenzije...


Zato što kvalitet JPEG nema nakve veze sa rezolucijom i dimenzijama slike. Kompresija u JPEG ne menja ni rezoluciju ni dimenzije nego sadržaj piksela tako da matematičnkom analizom i obradom izbacuje neke vizuelne inforamcije iz slike ali tako da dobije vizuelno sličan efekat. To omogućava da se sadržaj može lakše kompresovati.

Citat:

Citat:

Kada znamo dimenzije i rezoluicju ulazne slike, to znači da možemo da odredimo njene tačne dimenzije u centimetrima.


Pa ako već znaš dimenzije slike šta ima da odredjuješ dimenzije u centrimetrima? Samo prevedeš iz jedne jedinice mere - pikseli u drugu jedinicu mere - centimetri? :) Nema tu "odredjivanja" tačnih dimenzija nego samo konverzije? Šalim se, lepo objašnjenje znam šta hoćeš da kažeš, fin i tekst za sk, ali i dalje mislim da ne postoji bilo kakva "tačna dimenzija slike u centrimetrima" nego max dimenzija za štampu zadovoljavajućeg kvaliteta...Naravno ima smisla kad izlaganje započneš od skeniranja u toj i toj rezoluciji fizički postojeće neke odštampane već slike ili motiva, ali ako neko fotografiše nešto koje su "tačne dimenzije u centimetrima" takve fotografije?


Verovatno si prevideo da sam ja govorio o ULAZNOJ slici i eventualnoj potrebi da se odredi tačna fizička dimenzija u centimetrima digitalizovpanog predloška. Tvoja opaska se odnosi na IZLAZNU sliku.

Postoje realne potrebe za poznavanjem rezolucije slike, ako na primer treba da se reprodukuje kopija istih dimenzija. Određivanje dimenzija u centimetrima nije samo promena merne jedinice, mora se uraditi preračun shodno rezoluciji,a može i da se izbegne ako se zna ulazna rezolucija slike i prosto se odštampa istom rezolucijom.

Kada u ozbiljniji grafički program uvezeš sliku kojoj je poznata rezoucija ona će u programu biti prikazana istih fizičkih dimenzija kao što je digitalizovani predložak. To se lako može provberiti: kada se u Corel DRaw uveze skenirana tif slika (koja uvek sadrži podatak o rezoluciji) biće prikazana tačnih dimenzija. Kada se uveze bmp ili JEPG, koje ne sadrže podatak rezoluciji, program će pretpsotaviti da se radi o nekoj rezoluciji, obično 82 dpi i prikazati sliku dimenzija shodno toj rezoluciji što uglavnom nema blage veze sa stvarnim dimenzijama originala.

Obnrati pažnju da j nisam govorioni o skeniranju ni o fotografisanju nego o digitalizaicji. To je namerno. Digitlizaciajje opšti postupak prevođenja izgleda negog predloška u digitalni grafički zapis. Koji postupak se korsiti zavisi od potreba i mogućnosti.

Naravno da će neko kome su potrebe tačne fizike dimenzije objekata radije da skenira nego da fotografiše jer je skeniranje jednostavniji proces koji omogućava da se zadre informacije o dimenzijama. To je moguće i sa fotogrfisanjem ali je mnogo komplikovaniji postupak i ima smisla koristiti ga samo ako skeniranje nije primenljivo.

Naravno ako precizne fizičke dimenzije predloška nisu bitne, onda je i fotografisanje sasvim prihvatljiv postupak. Ja bih ipak pretpostavio da neko kome je bitna rezolucija pr emisli na skeniranje.

Citat:

On radi nešto, neki program za štampu ili šta već, u tom slučaju može i da vara, da namesti 150dpi kao minimum zadovoljavajući i da tvrdi da njegov program izbacuje veće formate za štampu nego gimp, ili nešto slično...


Šta FranjoZG radi ne znamo, nie rekao, čoveku je potrebno da razume pojmove da bi uradio to što radi.

Citat:

Nego mislio sam da može da se odredi rezolucija oka na osnovu toga što imamo 110 miliona receptora u oko ja kontao tu negde oko 10Mpix a sad čitam nešto čudno 576Mpix rezolucija oka ali 7Mpix bitnih za vidjenje...baš čudno.


Rezolucija se izražava brojem tačaka po jedinici dužine. Ovo očemu ti govoriš je ukupan broj piksela u slici što je prilično relativna jedinica mere sa kojom se ne može raditi egzaktno. Za rad su potrebne dimenzije u tačkama po širini i visini i eventualno rezolucija ako je potrebno da se znaju tačne fizičke mere predloška.


 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.cust.tele2.hr.



+4 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije11.12.2017. u 23:15 - pre 76 meseci
Drago mi je da netko ima volje toliko objašnjavati, naučio sam nešto novo (grafikom se baš i nisam bavio), ali, da se vratim na početak:

Da bih iz Width i Hight dobio veličinu u mm (koliko sam shvatio) treba mi DPI, ali kako dobiti DPI ili pixels/inch?

Citat:
Milan Milosevic: Evo ti procedura koja odreduje dimenzije za štampač
Code:

 Procedure OcitajParametreStampaca;
 Begin
   SirinaPapirauPix := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALWIDTH);
   VisinaPapirauPix := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALHEIGHT);
   SirinaPapiraumm := SirinaPapirauPix /
                      GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
   VisinaPapiraumm := VisinaPapirauPix /
                      GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY) * 25.4;
   BrPikselaPommY:=Printer.PageHeight / VisinaPapiraumm;
   BrPikselaPommX:=Printer.PageWidth / SirinaPapiraumm;
   YX_:=BrPikselaPommY/BrPikselaPommX;// vraca odnos visine i sirine
   XY_:=BrPikselaPommX/BrPikselaPommY;// vraca odnos visine i sirine
   MarginaX :=GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
   MarginaY :=GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);
   VisinaSlova:= Abs(MulDiv(printer.Canvas.Font.Size, GetDeviceCaps(Printer.Handle,LOGPIXELSY),72));
   RazmakIzmeduRedova;
   Stampaj_Rb_Stranice:=1; // setuje redni broj stranice novog dokumenta na 1
 End;


Ovo sa GetDeviceCaps sam našao, ali mi ne daje dobre rezultate - provjereno.
Trebam točne dimenzije jer scaniranu sliku koristim za digitalnu arhivu, a PDF kreiram s FastReport-om (ide i to, isprobano). Jedini problem mi je ostao definiranje veličine slika, a FastReport zadaje veličine u cm.

Zašto FastReport? Zato što ga imam, a free convertere bmp, jpg -> PDF nisam našao.
 
Odgovor na temu

MajorFatal
Milija Jakic
opravljam oluke, 1337LAB
Bg

Član broj: 36595
Poruke: 1325
*.dynamic.sbb.rs.



+557 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije12.12.2017. u 04:06 - pre 76 meseci
Citat:
Predrag Supurovic:
Pa kad se pogleda ovo tvoje objašnjenje onda postaje jasno zašto sam ja ono moje nazvao jednsotavnim i kratkim :) Uglavnom si ponovio ono što sam ja rekao )sa nekim entačnotima) ali na zbunjujui način :)


Dakle tvoje je JEDNSOTAVNO bez ENTAČNOTIMA i nije na ZBUNJUJUJI način :) Verovatno si prevideo rečenicu u kojoj sve sumiram, doduše bez ulaznih parametara, sve zaboravim da pričamo o skeneru..

Citat:
Predrag Supurovic:
Citat:

Nego ovo što mene zanima bmp ima podatke za svaki piksel valjda, a jpg je kompresovana varijanta sa nekim vrednostima
nepovratno izgubljenim, nekako po logici bmp bi morao da može da se zadovoljavajuće štampa na veći format od iste slike
jpg a program mi prijavljuje iste dimenzije...


Zato što kvalitet JPEG nema nakve veze sa rezolucijom i dimenzijama slike. Kompresija u JPEG ne menja ni rezoluciju ni dimenzije nego sadržaj piksela tako da matematičnkom analizom i obradom izbacuje neke vizuelne inforamcije iz slike ali tako da dobije vizuelno sličan efekat. To omogućava da se sadržaj može lakše kompresovati.


A be zašto citiraš a onda umesto da odgovoriš na konkretno pitanje ako znaš, pišeš o nečem drugom, ok jpg ne menja ni rezoluciju ni dimenzije, ali menja sadržaj... izbacuje i nepovratno gubi informacije.. vizuelno se dobija sličan efekat kao original ali dovoljno sličan samo na toj veličini kao i original, prilikom bilo kog uvećanja bmp koja nosi podatke o svakom pikselu bi morala da može da se bolje odštampa (vernije, doslednije) nego jpg na kojoj se pojavljuju veoma vidljivi artefekti i nedostaci, zašto program prijavljuje identične dimenzije za eventualnu štampu?


Citat:
Predrag Supurovic:
Verovatno si prevideo da sam ja govorio o ULAZNOJ slici i eventualnoj potrebi da se odredi tačna fizička dimenzija u centimetrima digitalizovpanog predloška. Tvoja opaska se odnosi na IZLAZNU sliku.

Postoje realne potrebe za poznavanjem rezolucije slike, ako na primer treba da se reprodukuje kopija istih dimenzija. Određivanje dimenzija u centimetrima nije samo promena merne jedinice, mora se uraditi preračun shodno rezoluciji,a može i da se izbegne ako se zna ulazna rezolucija slike i prosto se odštampa istom rezolucijom.

Kada u ozbiljniji grafički program uvezeš sliku kojoj je poznata rezoucija ona će u programu biti prikazana istih fizičkih dimenzija kao što je digitalizovani predložak. To se lako može provberiti: kada se u Corel DRaw uveze skenirana tif slika (koja uvek sadrži podatak o rezoluciji) biće prikazana tačnih dimenzija. Kada se uveze bmp ili JEPG, koje ne sadrže podatak rezoluciji, program će pretpsotaviti da se radi o nekoj rezoluciji, obično 82 dpi i prikazati sliku dimenzija shodno toj rezoluciji što uglavnom nema blage veze sa stvarnim dimenzijama originala.

Obnrati pažnju da j nisam govorioni o skeniranju ni o fotografisanju nego o digitalizaicji. To je namerno. Digitlizaciajje opšti postupak prevođenja izgleda negog predloška u digitalni grafički zapis. Koji postupak se korsiti zavisi od potreba i mogućnosti.

Naravno da će neko kome su potrebe tačne fizike dimenzije objekata radije da skenira nego da fotografiše jer je skeniranje jednostavniji proces koji omogućava da se zadre informacije o dimenzijama. To je moguće i sa fotogrfisanjem ali je mnogo komplikovaniji postupak i ima smisla koristiti ga samo ako skeniranje nije primenljivo.

Naravno ako precizne fizičke dimenzije predloška nisu bitne, onda je i fotografisanje sasvim prihvatljiv postupak. Ja bih ipak pretpostavio da neko kome je bitna rezolucija pr emisli na skeniranje.


Ovo se skoro sve slažem, ja sam smetnuo sa uma da je skener u pitanju, ipak mislim da se može govoriti o stvarnim dimenzijama jedino originala, od momenta digitalizacije više nema nikakvih stvarnih dimenzija već samo dimenzija predvidjenih za nešto, štampu, reprodukciju kopije istih dimenzija...šta god. Ako u ozbiljniji grafički program uvezem sliku poljančeta i drveta makar i u tif formatu neće mi reći koliko je drvo visoko, ili iz 3D programa nešto generisano a sačuvano u tif formatu? Ali uspeo si da me zainteresuješ, kako tif to postiže da sadrži podatke o rezoluciji s obzirom da ima raznih modela skenera sa različitim veličinama senzora i različitim osobinama, verujem da bi i pokretača teme interesovalo..


Citat:
Predrag Supurovic:
Citat:

Nego mislio sam da može da se odredi rezolucija oka na osnovu toga što imamo 110 miliona receptora u oku ja kontao tu negde oko 10Mpix a sad čitam nešto čudno 576Mpix rezolucija oka ali 7Mpix bitnih za vidjenje...baš čudno.


Rezolucija se izražava brojem tačaka po jedinici dužine. Ovo očemu ti govoriš je ukupan broj piksela u slici što je prilično relativna jedinica mere sa kojom se ne može raditi egzaktno. Za rad su potrebne dimenzije u tačkama po širini i visini i eventualno rezolucija ako je potrebno da se znaju tačne fizičke mere predloška.


Meni bi bilo zanimljivo ako znamo rezoluciju oka gde bi bila neka vrednost da nešto odštampano, reprodukovano sa sigurnošću lepo vidimo.. Dakle 110 miliona senzornih ćelija gusto zapakovanih na 1 Cm kvadratni, ili ako hoćeš 11.000 senzora na dužini od 1 Cm, koja bi to bila rezolucija?





Nemoj da pricas?
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije12.12.2017. u 05:44 - pre 76 meseci
Citat:
FranjoZG:
Da bih iz Width i Hight dobio veličinu u mm (koliko sam shvatio) treba mi DPI, ali kako dobiti DPI ili pixels/inch?


Kao što je već rečeno, kada su u pitanju bmp i jpg to su formati koji ne sadrže obavezno informaciju o DPI. Ako ti je ta informacija neophodna, skeniraj u tiff format.

Citat:

Trebam točne dimenzije jer scaniranu sliku koristim za digitalnu arhivu, a PDF kreiram s FastReport-om (ide i to, isprobano). Jedini problem mi je ostao definiranje veličine slika, a FastReport zadaje veličine u cm.

Zašto FastReport? Zato što ga imam, a free convertere bmp, jpg -> PDF nisam našao.


Hmmm... a što ne koristiš neki program koji skenira i snima direktno u PDF format? tako bi preskočio ceo problem.

 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije12.12.2017. u 06:26 - pre 76 meseci
Citat:
MajorFatal:
Citat:

Pa kad se pogleda ovo tvoje objašnjenje onda postaje jasno zašto sam ja ono moje nazvao jednsotavnim i kratkim :) Uglavnom si ponovio ono što sam ja rekao )sa nekim entačnotima) ali na zbunjujui način :)


Dakle tvoje je JEDNSOTAVNO bez ENTAČNOTIMA i nije na ZBUNJUJUJI način :) Verovatno si prevideo rečenicu u kojoj sve sumiram, doduše bez ulaznih parametara, sve zaboravim da pričamo o skeneru..


Ups, nekome je izgleda povređena sujeta :)

Citat:

Citat:

Nego ovo što mene zanima bmp ima podatke za svaki piksel valjda, a jpg je kompresovana varijanta sa nekim vrednostima
nepovratno izgubljenim, nekako po logici bmp bi morao da može da se zadovoljavajuće štampa na veći format od iste slike
jpg a program mi prijavljuje iste dimenzije...


Citat:

Zato što kvalitet JPEG nema nakve veze sa rezolucijom i dimenzijama slike. Kompresija u JPEG ne menja ni rezoluciju ni dimenzije nego sadržaj piksela tako da matematičnkom analizom i obradom izbacuje neke vizuelne inforamcije iz slike ali tako da dobije vizuelno sličan efekat. To omogućava da se sadržaj može lakše kompresovati.



A be zašto citiraš a onda umesto da odgovoriš na konkretno pitanje ako znaš, pišeš o nečem drugom, ok jpg ne menja ni rezoluciju ni dimenzije, ali menja sadržaj... izbacuje i nepovratno gubi informacije.. vizuelno se dobija sličan efekat kao original ali dovoljno sličan samo na toj veličini kao i original, prilikom bilo kog uvećanja bmp koja nosi podatke o svakom pikselu bi morala da može da se bolje odštampa (vernije, doslednije) nego jpg na kojoj se pojavljuju veoma vidljivi artefekti i nedostaci, zašto program prijavljuje identične dimenzije za eventualnu štampu?


Bogma zaista povređena sujeta :) Sve sam više uveren da ti to dolazi od neznanja i nesigurnosti u sebe.

Već sam rekao šta u principu radi JPEG i da ne menja rezoluciju. Nisam ulazio u detalje oko JPEG kompresije jer je nebitno za ovu diskusiju. BITNO je samo to da JPEG ne menja dimenzije u pikselima niti rezoluciju. Ako te interesuje kako to da ne menja siguran sam da na Internetu možeš naći mnogo vrlo detaljnih objašnjenja šta je i kako radi JPEG.

Međutim, ako ti brkaš kvalitet JEPG sa rezolucijom, onda mi je jasno što ti je povređena sujeta, ali mi je jasno i zašto su tvoja objašnjenja nerazumljiva i puna netačnosti ili makar proizvoljnosti. Znaš, kada nekome želiš nešto da objasniš, napre moraš da vladaš tom problematikom, a onda i da umeš da daš jasna i TAČNA objašnjenja.

Citat:

Ovo se skoro sve slažem, ja sam smetnuo sa uma da je skener u pitanju, ipak mislim da se može govoriti o stvarnim dimenzijama jedino originala, od momenta digitalizacije više nema nikakvih stvarnih dimenzija već samo dimenzija predvidjenih za nešto, štampu, reprodukciju kopije istih dimenzija...šta god. Ako u ozbiljniji grafički program uvezem sliku poljančeta i drveta makar i u tif formatu neće mi reći koliko je drvo visoko, ili iz 3D programa nešto generisano a sačuvano u tif formatu?


Kada su poljanče i drvo u pitanju, u najvećem broju slučajeva zaista nisu bitne njihove dimenzije, ali to ne mora da bude slučaj. Ja sam, recimo, radio na nekim slučajevima gde je bilo neophodno fotoaparatom slikavati neke objekte a zatim naknadno u računaru dođi do njihovih tačnih dimenzija. Radi se o složenim projekcijama ali je izvodjivo. Naravno kada se radi o 3d objektima, da tu rezolucija slike nije nešto mnogo bila bitna, sem da bude što veća da bi se imalo što više detalja.

Međutim, uzmimo na primer pripremu predložaka za izradu štampanih pločica. Tu je vrlo važno da dimenzije budu veoma precizne. Kada se pravi takav preložak, pogotovo skeniranjem, veoma se vodi računa o tome da se iz njega znaju tačne dimenzije a radi jednostavnosti rada, obično se predložak snima u nekom formatu koji sadrži DPI, tako da se slika čim se učita u program za štampu dobije sa tačnim dimenzijama.

Ili uzmimo drugi primer, da recimo imaš neko dobro staro pojačalo ali su se na prednjoj ploči izlizali natpipsi za komande i hoćeš to da osvežiš. Jedan način je da uzmeš pomično merilo u rike i premeravaš sve detalje na ploči da bi nacrtao predložak tačnih dimenzija. Izvodljivo je ali je sporo i vrlo podložno greškama.

Brži načn je da skineš ploču, skeniraš je sa tačnim dimenzijama, učitaš u neki program za crtanje, i koristeći skeniranu ploču kao podlogu nacrtaš ponovo sve oznake. (ako si vešt sa fotoparatom, možeš i da prođeš bez razmontiravanja ploče). Sve u svemu, umesto da gubiš vreme na premeravanje dimenzija i crtanje svih detalja, samo treba da vodiš računa o rezoluciji skeniranja i rezoluciji štampe i garantovano dobijaš tačne dimenzije.

Drugim rečima, postoje razlozi da fizičke dimenzije digitalizovanog objekta i rezolucija digitalizacije nekada budu bitni.

Citat:

Ali uspeo si da me zainteresuješ, kako tif to postiže da sadrži podatke o rezoluciji s obzirom da ima raznih modela skenera sa različitim veličinama senzora i različitim osobinama, verujem da bi i pokretača teme interesovalo..


Prosto, TIF kao format u svojoj strukturi ima predviđeno polje u koje se upisuje rezolucije slike i to polje je obavezno popunjeno bez obzrira da li skeniraš, fotografišeš ili sliku crtaš u nekom programu ili je praviš na neki drugi način. Kad god se snima sika u TIFF format, upisuje se rezolucija.

Zašto rezolucija i dimenzije skenera nemaju uticaja? Pa zato što dimenzije i rezolucija skenera samo određuju njegove mogućnosti. U skeniranu sliku se ne upisuju dimenzije i rezoucija skenera nego dimenzije i rezolucija skeniranog materijala. Parametre skeniranja podešavaš prilikom skeniranja.

Može jedno glupo pitanje, jesi li ti ikada koristio skener?

Citat:

Meni bi bilo zanimljivo ako znamo rezoluciju oka gde bi bila neka vrednost da nešto odštampano, reprodukovano sa sigurnošću lepo vidimo.. Dakle 110 miliona senzornih ćelija gusto zapakovanih na 1 Cm kvadratni, ili ako hoćeš 11.000 senzora na dužini od 1 Cm, koja bi to bila rezolucija?


Koliko ja znam oko nema rezoluciju, bar ne u onom smilsu u kome mi to ovde diskutujemo. Slika koju mi vidimo je proizvod prilično kompleksne obrade koju vrši mozak i predstavlja našu percepciju onoga što nam oko prenese, jer oko je samo optički uređaj, ono ne vidi - to što mi vidimo je slika koju stvara mozak. Fizička rezolucija oka kao optičkog senzora je priično mala kada se uzme u obzir broj i raspored čepića (optičkih senzora u oku) međutim, mozak završava posao tako da mi vidimo znatno većom rezolucijom (ili bar imamo utisak da je tako).

U svakom slučaju, rezolucija vida je vrlo relativna stvar i nema mnogo veze sa ovom temom.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije12.12.2017. u 06:34 - pre 76 meseci
> Ovo sa GetDeviceCaps sam našao, ali mi ne daje dobre rezultate - provjereno.
> Trebam točne dimenzije jer scaniranu sliku koristim za digitalnu arhivu, a PDF kreiram s FastReport-om (ide i to, isprobano). Jedini
> problem mi je ostao definiranje veličine slika, a FastReport zadaje veličine u cm.
> Zašto FastReport? Zato što ga imam, a free convertere bmp, jpg -> PDF nisam našao.

Da li ti radis i OCR na tim skenovima ili samo sacuvas u PDF?
Ako je samo cuvanje u PDF onda time nista ne dobijas odnosno samo mozes izgubiti na kvalitetu slike (PDF po defaultu smanjuje rezoluciju), mozes i jednostavno da cuvas kao sliku.

Idealna kombinacija je propustanje slike kroz OCR i pravljenje kombinovanog PDFa sa slikom i tekstom, time dobijas i uvid u original a i pretragu/kopiranje teksta.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: bmp ili jpg slika i stvarne dimenzije12.12.2017. u 10:33 - pre 76 meseci
Evo dole kod koji moze da nadje guglanjem.

Inace moze da se izmeni Delphi jpeg unit i da se doda ta funkcija a da se koristi delphijevo citanje jpg fajla.


Code:

procedure GetResJpg(JPGFile: string);
const
  BufferSize = 50;
var
  Buffer: string;
  Index: integer;
  FileStream: TFileStream;
  HorzRes, VertRes: Word;
  DP: Byte;
  Measure: string;
begin
  FileStream := TFileStream.Create(JPGFile, fmOpenReadWrite);
  try
    SetLength(Buffer, BufferSize);
    FileStream.Read(Buffer[1], BufferSize);
    Index := Pos('JFIF' + #$00, Buffer);
    if Index > 0 then
    begin
      FileStream.Seek(Index + 6, soFromBeginning);
      FileStream.Read(DP, 1);
      case DP of
        1:
          Measure := 'DPI'; //Dots Per Inch
        2:
          Measure := 'DPC'; //Dots Per Cm.
      end;
      FileStream.Read(HorzRes, 2); // x axis
      HorzRes := Swap(HorzRes);
      FileStream.Read(VertRes, 2); // y axis
      VertRes := Swap(VertRes);
    end
  finally
    FileStream.Free;
  end;
end;



[Ovu poruku je menjao savkic dana 12.12.2017. u 12:05 GMT+1, napomena, ubacio sam prilozeni kod u odgovarajuce tagove]


[Ovu poruku je menjao savkic dana 12.12.2017. u 12:08 GMT+1]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: bmp ili jpg slika i stvarne dimenzije

Strane: 1 2

[ Pregleda: 5170 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.