dpi vom Pixel im Purebasicscreen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

dpi vom Pixel im Purebasicscreen

Beitrag 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
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8812
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: dpi vom Pixel im Purebasicscreen

Beitrag 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.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: dpi vom Pixel im Purebasicscreen

Beitrag 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


Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: dpi vom Pixel im Purebasicscreen

Beitrag 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 ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: dpi vom Pixel im Purebasicscreen

Beitrag 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
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: dpi vom Pixel im Purebasicscreen

Beitrag 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
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Re: dpi vom Pixel im Purebasicscreen

Beitrag 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
Working on :lol: - LibSGD - MP3D Engine - 8)
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: dpi vom Pixel im Purebasicscreen

Beitrag von super_castle »

wenn du mir sagen kannst, wie ich hier grafikdateien hochladen kann?

mfg
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Re: dpi vom Pixel im Purebasicscreen

Beitrag 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
Working on :lol: - LibSGD - MP3D Engine - 8)
Antworten