Deutsch
Experimente

Pixels: übergroße Bilder anzeigen, laden, speichern

 
Pixels: übergroße Bilder anzeigen, laden, speichern

Ein Paket jetzt auch mit Dateifunktionen (war recht kniffelig!)

Es gibt jetzt die pixels.files.inc -

dort haben die Dateiformate-Coder ihren Platz -

folgende Funktionen als Beispiel dabei:

pixels.saveRAWtoFile(long pix,string fle)
pixels.loadRAWfromFile(string fle,long xx,yy)
pixels.savePINCtoFile(long pix,string fle)
pixels.loadPINCfromFile(string fle)

Paket:

Herunterladen

Die Schwierigkeit ist so zu programmieren, dass es eben auch mit wirklich großen Dateien klappt. Z.B. kann ich nach dem Einladen einer 0,5GB-Datei nicht einfach mal ein Doppel anlegen oder Umkopieren.

Auch die pixels.inc ist erweitert und pixels.create hat nun 4 Parameter.
Also nicht die Codes mixen.

Jetzt könnte sich jemand daran machen, in die pixels.files.inc ein pixels.loadBMPfromFile einzuprogrammieren. Hierbei muss man dann den Decoder natürlich selbst umsetzen und sollte besser in einer nProc geschrieben sein.

Ich für meinen Teil wäre mit dem Thema und Test dann erstmal durch,
Riesenbilder mit XProfan/ FreeProfan problemlos möglich.

Weitere Demos:

Hier scrollen 14.000x14.000 Pixel:

Herunterladen



Echte Threads:

Herunterladen


6.318 kB
Hochgeladen:30.12.2015
Ladeanzahl200
Herunterladen
 
29.12.2015  
 



Um für das Pixels-Experiment eine komplette Experimental-Umgebung herzustellen, dachte ich an FreeProfan  [...]  mit dazugehöriger IDE XProfEd.

Aber eines der beiden Produkte scheint ein Problem zu haben, denn wenn ich start ./profan.exe ./xprofed.prf dann startet xprofed nur ca. jedes 10. Mal. Der Splash-Screen wird aber immer gezeigt.

Ich habe hier für das Paket mal ein Paket geschnürt mit: XPSE, FreeProfan32, XProfEd, JWasm, POLink, für XProfEd-notwendige .ph-Dateien.

Aber schon der IDE-Start gelingt der freeprofan32 profan exe nicht. Die von Roland beigelegte XProfEd.exe funktioniert jedoch aber ich muss die IDE per profan.exe starten.

Hier das Paket, bekommts jemand zum laufen?

Und die profcomp.exe findet die windows.ph nicht obwohl sie im selben Verzeichnis liegt:


6.830 kB
Hochgeladen:29.12.2015
Ladeanzahl5
Herunterladen
53 kB
Hochgeladen:29.12.2015
Ladeanzahl149
Herunterladen
 
29.12.2015  
 



So, dann ohne IDE mal kürzeres Paket:

build.bat kompiliert und startet...

und siehe da, 10.000²x4 klappt!

15.000²x4 klappt bei mir nicht mehr -
wären dann aber auch 0,85 GigaByte.



Ergo sind auch mit XProfan Bildgrößen wie 50.000 x 50.000 x1Bpp möglich- halbes GigaByte Pixeldaten scheint da so die Grenze zu sein ganz ähnlich wie bei IrfanView.

10.000x10.000 RGBA (myImg3) sind jedenfalls damit dicke drin.

7.072 kB
Hochgeladen:29.12.2015
Ladeanzahl1
Herunterladen
13 kB
Hochgeladen:29.12.2015
Ladeanzahl159
Herunterladen
 
29.12.2015  
 



Hier ein neues Paket das die Größen durchtestet:

Herunterladen

Ich komme auf 748MB (14000x14000xRGBA):



Und das scheint auch genau IrfanViews Grenze zu sein,
14Ki² schafft er bei mir noch aber nicht 15Ki².

7.072 kB
Hochgeladen:29.12.2015
Ladeanzahl124
Herunterladen
17 kB
Hochgeladen:29.12.2015
Ladeanzahl202
Herunterladen
 
29.12.2015  
 



Hier scrollen 14.000x14.000 Pixel:



Herunterladen

Unterm Strich würde ich für sowas eher die stabilere
XProfan 11 Vollversion empfehlen und die Dateien
im Paket ersetzen.

Hier der Code:
 {$cleq}
//
decimals 0
include pixels.inc
//usermessages wm_erasebkgnd
//
cls
print "Größen/Speichertest:"
// max größe durchtesten
long tmp,max

whileloop 1000,25000,1000

    tmp=pixels.create(loop,loop,$FF0000)

    if tmp

        max=loop
        pixels.destroy(tmp)

    endif

    print loop;"x";loop;":",if(tmp,tmp,"gescheitert")
    casenot tmp : break

wend

casenot max : end messagebox("errmax","",0)
//
sleep 1000
cls
// maximales Megabild anlegen
long megabild=pixels.create(max,max,0)
casenot megabild : end messagebox("errmega","",0)
// kleines AnzeigePixelshPic für Ausgabe des Riesenbildes erzeugen
long myView=pixels.createHPic(maxx,maxy,$FF0000)
casenot myView : end messagebox("errmyview","",0)
// megabild vollmalen

whileloop 2000

    pixels.line(megabild,0,rnd(max),max,rnd(max),rnd($FFFFFF))
    pixels.line(megabild,rnd(max),0,rnd(max),max,rnd($FFFFFF))

wend

// anzeige
long x,y,xx,yy
windowtitle str$(max)

do {

    xx=width(hWnd)
    yy=height(hWnd)
    x=mousex/xx*(max-xx)
    y=mousey/yy*(max-yy)
    case x>max-xx-1 : x=0
    case y>max-yy-1 : y=0
    // Ausschnitt aus Riesenbild-Pixelspeicher in kleines AnzeigePixelshPic kopieren
    pixels.copyRect(myView,megabild,0,0,x,y,xx,yy,0)
    // das hPic der Pixel von myView aktualisieren
    pixels.renewHPic(myView)
    // kleines AnzeigePixelshPic auf hWnd zeichnen
    pixels.drawHPic(myView,0,0,0)
    //
    waitinput 1

}

//
//pixels.destroy(myView)
end
//

8.505 kB
Hochgeladen:29.12.2015
Ladeanzahl3
Herunterladen
20 kB
Hochgeladen:29.12.2015
Ladeanzahl156
Herunterladen
1.224 kB
Hochgeladen:29.12.2015
Ladeanzahl170
Herunterladen
 
29.12.2015  
 




RudiB.


Habs auch mal kurz getestet.....

37 kB
Hochgeladen:29.12.2015
Ladeanzahl176
Herunterladen
 
XProfan 9
WinXP, SP2, AMD Phenom(tm) II X4 840 Processor

Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
29.12.2015  
 



Wow,

Du könntest vielleicht sogar an die 4 GB reservieren,

RGBA: 32.768² Pixel
Graustufen: 65.536² Pixel
SW: 185.363² Pixel

die nach diesem Prinzip angezeigt werden könnten.
 
29.12.2015  
 




RudiB.
hab nur Deine exe mal probiert, geht sogar noch bis 19000, doch danach steigt er aus. Die 20000: da sagt das Progrämmle "gescheitert". Und das Pixelscrollen läuft bei mir auch recht flüssig bei Mausbewegung...cool.
aber mal Ehrlich wer braucht denn sooo große Bilder ??

na ja, weil man's kann, oder ??

[OFFTOPIC]Hab jetzt das Problem (mein Problem) mit den Arrays erkannt/gelöst.....jetzt flutscht es....Hatte jedoch noch nie Probleme oder Fehler, bis gestern !! Danke nochmal....ich war schon penetrant, oder??[/OFFTOPIC]
 
XProfan 9
WinXP, SP2, AMD Phenom(tm) II X4 840 Processor

Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
29.12.2015  
 



Hier mal endlich ein Paket jetzt auch mit Dateifunktionen (war recht kniffelig!)

Es gibt jetzt die pixels.files.inc -

dort haben die Dateiformate-Coder ihren Platz -

folgende Funktionen als Beispiel dabei:

pixels.saveRAWtoFile(long pix,string fle)
pixels.loadRAWfromFile(string fle,long xx,yy)
pixels.savePINCtoFile(long pix,string fle)
pixels.loadPINCfromFile(string fle)

Paket:

Herunterladen

Nur test.exe:

Herunterladen

Die Schwierigkeit ist so zu programmieren, dass es eben auch mit wirklich großen Dateien klappt. Z.B. kann ich nach dem Einladen einer 0,5GB-Datei nicht einfach mal ein Doppel anlegen oder Umkopieren.

Auch die pixels.inc ist erweitert und pixels.create hat nun 4 Parameter.
Also nicht die Codes mixen.

Jetzt könnte sich jemand daran machen, in die pixels.files.inc ein pixels.loadBMPfromFile einzuprogrammieren. Hierbei muss man dann den Decoder natürlich selbst umsetzen und sollte besser in einer nProc geschrieben sein.

Ich für meinen Teil wäre mit dem Thema und Test dann erstmal durch,
Riesenbilder mit XProfan/ FreeProfan problemlos möglich.

8.214 kB
Hochgeladen:29.12.2015
Ladeanzahl4
Herunterladen
2.991 kB
Hochgeladen:29.12.2015
Ladeanzahl147
Herunterladen
 
29.12.2015  
 



[OFFTOPIC]
RudiB. (29.12.2015)
Hab jetzt das Problem (mein Problem) mit den Arrays erkannt/gelöst.....jetzt flutscht es....Hatte jedoch noch nie Probleme oder Fehler, bis gestern !! Danke nochmal....ich war schon penetrant, oder??


Ich wollte schon durchrufen!

[/OFFTOPIC]
 
29.12.2015  
 



Echte Threads:

Herunterladen



Paket aktualisiert:  [...] 

2.932 kB
Hochgeladen:30.12.2015
Ladeanzahl17
Herunterladen
295 kB
Hochgeladen:30.12.2015
Ladeanzahl139
Herunterladen
 
30.12.2015  
 



Zum Experiment


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

11.315 Betrachtungen

Unbenanntvor 0 min.
Thomas Freier14.02.2024
RGH26.12.2021
p.specht20.11.2021
Manfred Barei19.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

iF (9x)
RudiB. (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie