Seite 1 von 2

dpi vom Pixel im Purebasicscreen

Verfasst: 08.11.2009 13:06
von super_castle
Welchen dpi-Wert hat ein Pixel im Purebasicscreen?

Wenn ich Bilder einlese, die verschiedenen dpi haben, werden die verschieden gross dargestellt im GDI-Fenster.
Bei welcher dpizahl ist ein Bildpixel ein Purebasicpixel.

Gruss

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 08.11.2009 13:20
von NicTheQuick
Du meinst die Bilder haben alle die selbe Auflösung, aber verschiedene DPI und dann werden sie unterschiedlich mit 'DrawImage()' angezeigt?

Mach mal bitte ein Beispiel dazu.

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 08.11.2009 13:25
von super_castle
"raupe-grau.bmp"

Bei 72dpi und 96dpi hat es verschiedene grössen.

Code: Alles auswählen

XIncludeFile "gdiplus.pbi"

lib = OpenLibrary(#PB_Any, "gdiplus.dll") 

Global sl.l,sl1.l,ga.l,gar.l,wia.f,wiar.f

Enumeration
  #Container_0
  #Button_0
  #Button_1
  #Button_2
EndEnumeration

color = MakeColor(255,255,255,0)

InitSprite()
 
  OpenWindow(0, 0, 0, 800,600, "GdiPlus 1.0", #PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
  OpenWindowedScreen(WindowID(0),10,200,400,400,0,0,0)
   
  CreateSprite(1,128,128,#PB_Sprite_Texture)
   
  ButtonGadget(#Button_0, 20, 40, 110, 40, "QUIT ")
  ButtonGadget(#Button_1, 20, 90, 110, 40, "vor")
  ButtonGadget(#Button_2, 20, 140, 110, 40, "zurück")
  
  ContainerGadget(#Container_0, 260, 10, 128,128)
  Gdiplus_New()
  GdipCreateFromHWND(GadgetID(#Container_0), @*gfx1)
  
  GdipCreateBitmapFromFile("raupe-grau.bmp", @*image1)
  
  sl=64*2.5
  sl1=sl/2
  ga=32
  
  Repeat
  
  Event.l = WaitWindowEvent(2)
  
  GdipDrawImageI(*gfx, *image1, 0, 0)
  
  If GetAsyncKeyState_(#VK_Q)
      wia.f = wia+1
      GdipTranslateWorldTransform(*gfx1, sl1,sl1,0)
      GdipRotateWorldTransform(*gfx1, wia, 0)
      GdipDrawImagei(*gfx1, *image1,-ga,-ga)
      GdipResetWorldTransform(*gfx1)
  EndIf
  
  If GetAsyncKeyState_(#VK_E)
       wia.f = wia-1
      GdipTranslateWorldTransform(*gfx1, sl1,sl1,0)
      GdipRotateWorldTransform(*gfx1, wia, 0)
      GdipDrawImagei(*gfx1, *image1,-ga,-ga)
      GdipResetWorldTransform(*gfx1)
  EndIf
  
  ClearScreen(RGB(255,255,0))
   
  DisplayTransparentSprite(1,10,10)
  
  FlipBuffers() 
   
  Until Event = #PB_Event_CloseWindow   
 
End



Re: dpi vom Pixel im Purebasicscreen

Verfasst: 08.11.2009 16:09
von STARGÅTE
Mach mal bitte ein Beispiel dazu.
Damit meinte er ein ausführbares!

Wo gibs die "gdiplus.pbi" und wo die "gdiplus.dll" wo gibs "raupe-grau.bmp"

Ich würde behaupten PB nutzt die Windowseinstellungen als Wert für die DPI , bei mir halt 96DPI.

Aber die normalen Befehle von PB interessieren sich nicht dafür ...

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 08.11.2009 18:57
von super_castle
Aber die normalen Befehle von PB interessieren sich nicht dafür ...

Was sind jetzt normale Befehle und unnormale, die nicht funktionieren?

Gruss

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 08.11.2009 19:02
von super_castle
http://www.purearea.net/pb/german/index.htm

Da gibt es die GDI usw.

Für das Bild kann man ein Musterechteck abspeichern und mit verschiedenen Dpi versehen.

Aber ich glaube es liegt am GDI.

Gruss

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 10.11.2009 00:27
von mpz
Hi Supercastle,

kannst Du mal bitte die beiden "gleichen" Grafiken mit 72dpi unfd 96dpi raufladen. Den Unterschied möchte ich mir gerne mal ansehen. Wenn beide Grafiken die gleiche "Pixel" Auflösung haben, dürften nicht zwei unterschiedlich grosse Sprites entstehen. Es gibt aber ein technisches Detail. Manche Grafikkarten können nur quadratische und nur das Vielfache von 2 (1,2,4,8,16...) Pixel als Sprite übernehmen. Ein Grafikbreite von 50 Pixel wird dann z.B. auf 64 Pixel aufgerundet. Hier ein kleines Testprogramm um die DX9 Funktionen dazu auszulesen. Was steht den da bei Dir ?

http://rapidshare.de/files/48659253/gra ... o.exe.html

Infos zu Deiner Grafikkarte und OpenGL Funktionen findest Du hier
http://www.kludx.com/browse_video_cards.php

Gruß Michael

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 11.11.2009 00:14
von super_castle
wenn du mir sagen kannst, wie ich hier grafikdateien hochladen kann?

mfg

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 11.11.2009 00:47
von TomS

Re: dpi vom Pixel im Purebasicscreen

Verfasst: 11.11.2009 00:50
von mpz
Hi Supercastle,

1) Einfach kopieren was mein Programnm sagt -> ich interpretiere dann
2) http://www.rapidshare.de - > Duchsuchen und die erste Datei finden und markieren -> Upload wählen und link hier posten
3) http://www.rapidshare.de - > Duchsuchen und die zweite Datei finden und markieren -> Upload wählen und link hier posten

:D
Gruß Michael