Deutsch
Forum

XProfan X3 Beta

sehr große Bilddateien nicht ladbar

 

Jörg
Sellmeyer
Profan kommt leider nicht mit sehr großen Bilddateien klar. Ich hab extra mal ein großes Bild angehängt, damit man das selber ausprobieren kann.
Ich würd mir wünschen, dass solche Bilder geladen werden können. Im Prinzip kann man sie in einem HTML-Control problemlos laden und anschauen, dann bleibt aber das Problem, dass man die Bildmaße nicht ermitteln kann.
Außerdem dauert das Laden mit MLoadBmp dann auch viel zu lange. Es gibt von Th. Hölzer ein Codebeispiel (GrafDim.inc), wie man Bitmapdimensionen direkt aus der Datei auslesen kann. Das wär doch mal was für XProfan, oder?
Cls
MLoadBmp "Africa_satellite_plane.jpg"
Print %bmpx,%bmpy
WaitInput

Cls
ShowMax
Var Bild$ =  "Africa_satellite_plane.jpg"
Var hHTML& = Create("HTMLWin", %hwnd, Bild$, 1, 0, 0, Width(%hwnd), Height(%hwnd))
WaitKey

[OFFTOPIC]Das Hochladen so großer Datei klappt anscheinend nicht, darum hab ich das Bild mal bei mir hochgeladen:  [...] 
Vorsicht! Es hat 7,5mb.[/OFFTOPIC]
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
10.10.2014  
 



[OFFTOPIC]Normalerweise sind Dateien bis 30MB kein Problem hier auf XProfan.Net -
ich prüf das!

Die Datei von Deinem Webserver wiederum zeigt mein FF so:



Nachtrag:

Ah, ich sehe am ApacheLog dass es von Deiner Leitung einfach zu lange gedauert hat - hier griff also der Timeout statt die Dateigrößenbeschränkung. Ich ändere das.[/OFFTOPIC]
 
10.10.2014  
 




Jörg
Sellmeyer
Upps - nach Strg-F5 bekomme ich die gleiche Meldung.
Probier mal "Ziel speichern unter..." - das geht
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
10.10.2014  
 




Paul
Glatz
Bei mir unter Firefox 32.0.3 auf Linux wird das Bild angezeigt
 
10.10.2014  
 



[OFFTOPIC]Nicht ganz bei mir -

nach strg+f5 kommt die bild ist kaputt meldung -

aber aus dem cache wirds angezeigt -

auch speichern unter ging nicht. Also hat auch

FF so seine probleme mit solch riesenbildern.

mir war nur erstmal wichtig das es nicht am communityprogramm liegt.

die maximale "upload-__dauer__" regel ich hoch.

[/OFFTOPIC]


IrfanView ist auch solch MeisterDesGeschehens und zeigt Riesenbilder
auch noch schneller.

Was ich mir vorstellen kann, ist dass vlt. garnicht mal die Bildladeapi nicht
mit solch großen Bildern klarkommt sondern vielleicht nur der ein oder andere DC
und da XProfan bei sowas wie mloadbmp etc. ohne DC nicht auskommt...

Irgendwann hatte ich mal herausgefunden und angesprochen, dass es mir mit
XProfan auf einigen Computern nicht möglich ist, Bilder zu laden und anzuzeigen,
die größer als der Bildschirm sind.

Vielleicht sollten wir uns mal eine Monster-Apimässige eigene IMGInc schreiben
die sich ggf. auch nach nProcs portieren liesse. Ich glaube wenn Roland da anfängt
an seinen 200 GrafikFunktion herumzufummeln dann könnte das doch ziemlich
viel Zeit in Anspruch nehmen.

Was braucht der Mensch für den Anfang?

a) eine Funktion die ein Speicher-Handle erzeugt, unser eigener Anker, eigene imgageStruct damit man sich später noch mehr zum Bild merken kann, sagen wir var long handle=imageCreate(x,y) //bpp und solch kram brauchen wir hier noch nicht da das ja im bitmapHeader steht und wo der steht kann ja in unserer imageStruct stehen

b) eine Funktion bool func imageLoadFromFile(image,file) // läd ein bild und speichert handle etc. in die imageStruct. ergo:

c) imageDraw(image,destDC)
d) bool func destroyImage(image)

Das dann wiederum zu erweitern könnte sogar Spaß machen.
 
10.10.2014  
 




Jörg
Sellmeyer
Sowas Aufwendiges hat mir garnicht vorgeschwebt. Mir reicht schon das hier: [...]  Damit kann man die Maße von Bildern auslesen, ohne sie mit XProfan zu laden.
Allerdings hätte ich definitiv nichts dagegen, wenn XProfan auch große Bilder laden kann.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.10.2014  
 




Jörg
Sellmeyer
Ich seh gerade, dass schon seit Profan11 die Funktion SizeOf(PicHandle&) die Werte %bmpx und %bmpy% bestückt. Leider sind aber auch diese Werte bei Bilder über 2000x2000 Pixel nicht mehr korrekt.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.10.2014  
 




RGH
Also ich habe es mir jetzt mal angeschaut:
Offensichtlich hat die API OleLoadPicture() (wird von LOADBMP ebenso verwandt wie von Create("hPic",-1,<Name>)) hier ein Problem.
Mit meinen 16 MPixel Bildern klappt es noch, aber die 75 MPixel Deines Bildes sind wohl zu viel.
Vorher ist alles ok: Der benötigte Speicher wird bereitgestellt und der Stream geöffnet.

Ich weiß im Moment nicht, was ich da machen könnte.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
22.10.2014  
 




RGH
Nachtrag:

Manchmal scheint es auch zu klappen. Möglicherweise ist es eine Frage des freien, zusammenhängenden Speichers. Da die JPEG-Datei intern in BMP umgewandelt wird, braucht Dein Bild etwas über 300 MB Speicher am Stück.

Folgendes Testprogramm lief eben bei mir korrekt durch (gestern abend aber nicht):
Cls
' MLoadBmp "Z:/Bilder/Africa_satellite_plane.jpg"
' Print %bmpx,%bmpy
' WaitInput
var handle hPic = create("hPic", -1, "Z:/Bilder/Africa_satellite_plane.jpg")
Print hPic
Print sizeOf(hPic)
Print %bmpx,%bmpy
WaitInput

Wenn ich die drei auskommentierten Zeilen wieder reinnehme, klappt jetzt das MLoadBmp, dafür aber das create("hPic",...) nicht mehr.
Es sieht also sehr danach aus, dass die API CreateCompatibleBitmap() beim zweiten Mal nicht mehr ausreichend Speicher findet. OleLoadPicture() klappt noch.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
22.10.2014  
 




RGH
Hallo,

wieder aus dem Urlaub zurück, mehrtägiges hohes Fieber und einen Husten überstanden und nun wieder am PC!

Auch Versuche, CreateCompatibleBitmap() durch CreateDIBitmap() oder CreateDIBSection zu ersetzen, brachten keine Änderung.

Ich belasse es also vorerst dabei. Falls jemand noch eine Idee hat: Ich bin für Vorschläge offen. Wie gesagt: OLELoadPictute() gibt mir noch dsas PictureObjekt, aber das erstellen einer ausreichend großen Bitmap, um darauf das Picture zu rendern und ein nutzbares Handle zu liefern, schlägt bei XXXXXXXL-Bildern fehl. Ab welcher Größe es scheitert, hängt wohl vom Grafiktreiber und dem Speicher des Rechners und/oder der Grafikkarte ab.

Ich wende mich dann mal wieder den Ressourcen zu. Ich würde nämlich auch gerne RES-Dateien verarbeiten, aber dafür gibt es keine APIs. Handarbeit ist angesagt.

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
29.10.2014  
 



Ich versuche mal Irfan Skiljan dazu anzuschreiben. Wir hatten damals Gedanken ausgetauscht und er läd und zeigt in IrfanView ja "egal"-wie-große Bilder.
 
29.10.2014  
 




Jörg
Sellmeyer
Den Gedanken an IrfanView hatte ich auch. Ist ja prima, dass du Kontakt zu ihm hast.
Ist nicht z. B. Gimp auch Open Source?
Ich wäre mit sowas leider hoffnungslos überfordert. Ohne Profan wäre ich aufgeschmissen, was das Programmieren angeht.

@Roland: ich hoffe, das hat dir nicht den Urlaub versaut und deine Erholung vermiest.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
30.10.2014  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.557 Betrachtungen

Unbenanntvor 0 min.
AndreasS27.12.2018
Jörg Sellmeyer15.05.2018
Thomas Zielinski08.01.2016
Ernst04.01.2016
Mehr...

Themeninformationen



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