Bild in Icon umwandeln?

  • hallo leute,

    ich bins mal wieder ^^

    gibt es einen Befehl in autoit zum Umwandeln von bildern in Icons?
    (hab in der gdi nichts gefunden)

    kann man das überhaupt mit autoit umsetzen?

    mfg team2way

  • Mir ist noch eingefallen, such doch ein konsolenprogramm dafür und brings per FileInstall mit...

    Padmak

  • jopp das geht, schau dir

    _GDIPlus_ImageLoadFromFile
    _GDIPlus_ImageSaveToFileEx
    _GDIPlus_EncodersGetCLSID("ICO")

    dafür muss natürlich er encoder installiert sein^^, bei mir jedenfalls ist er da

  • @DjBasslord hab das mit dem encoder schon probiert...bei mir gings nicht gans so :(

    deswegen noch kurz die fragen...
    -geht das mit jedem bild vormat also jpg, png in icon
    -der encoder muss ja aber nicht mit dem programm mitgeliefert werden...oder?

    thx schon mal für deine hilfe

    team2way

  • hi leute,

    die function soll ein bild verkleinern ( 48x48 ) und als icon speichern.
    also so gehts nicht...kann mir jemand sagen was da falsch ist
    ( es wird zwar ein icon gespeichert, aber mit leerem inhalt )

    [autoit]

    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile($sImage)
    $sCLSID = _GDIPlus_EncodersGetCLSID("ICO")
    $hImage = _GDIPlus_ImageLoadFromFile($sImage)
    Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, 48, 48)
    _GDIPlus_GraphicsDispose($hGraphics)
    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, $iWidth, $iHeight)

    [/autoit][autoit][/autoit][autoit]

    _GDIPlus_ImageSaveToFileEx($hBitmap, $icon, $sCLSID)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

    [/autoit]


    mfg team2way

    2 Mal editiert, zuletzt von team2way (9. März 2009 um 21:38)

  • weiß hier keiner weiter?

    oder vllt kann mans ja auch anders umsetzten...

    mfg team2way

  • Narütlich wird ein leeres Bild gespeichert, wenn du keinen Pfad zum jetzigen Bild angibst
    also du musst es so machen:

    [autoit]

    _GDIPlus_Startup()
    $load_Image = @WorkingDir&"\test.gif" ;Der Pfad zum Bild das in ein .ico umgewandelt werden soll
    $hImage = _GDIPlus_ImageLoadFromFile($load_Image)
    $sCLSID = _GDIPlus_EncodersGetCLSID("ICO")
    Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, 48, 48)
    _GDIPlus_GraphicsDispose($hGraphics)
    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, $iWidth, $iHeight)

    [/autoit][autoit][/autoit][autoit]

    _GDIPlus_ImageSaveToFileEx($hBitmap, $icon, $sCLSID)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

    [/autoit]


    (script not tested)

    mfg FireTiger

  • Zitat

    Narütlich wird ein leeres Bild gespeichert, wenn du keinen Pfad zum jetzigen Bild angibst

    #
    lol das ist ja nur die func...klar hab ich den pfad im hauptprogramm mit global deklariert ^^

    schade das dus nicht getestet hast...werds auf jeden fall noch mal testen aber glaub nich das das jetzt die lösung ist!

    mfg team2way

  • also es geht immer noch nicht --- schade

    vllt geht die zeile nicht, da man das bild in bmp umwandelt...kann das sein?

    [autoit]

    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphics)

    [/autoit]

    also der fehler ist immer noch das zwar ein icon, also mit endung ico, aber ohne inhalt erstellt wird.

    vllt geht auch dieser umwandlungsbefehl nicht, da es mit der eingabe BMP funktioniert ( nur zum umwandeln in das bitmap format )
    geht

    [autoit]

    $sCLSID = _GDIPlus_EncodersGetCLSID("BMP")

    [/autoit]


    geht nicht

    [autoit]

    $sCLSID = _GDIPlus_EncodersGetCLSID("ICO")

    [/autoit]

    weiß da keiner weiter?

  • ich hab den Encoder auch nicht. (bei XP, hast du Vista?) sonst starte mal das und gib die Zeile für ico raus:

    Spoiler anzeigen
    [autoit]

    #include <gdiplus.au3>
    #include <array.au3>
    _GDIPlus_Startup()
    $en = _GDIPlus_Encoders()
    _ArrayDisplay($en)
    _GDIPlus_Shutdown()
    Exit

    [/autoit]
  • hi, ich hab vista ^^

    weiß nicht ganz was ich mit deinem script machen soll!
    hilft das mit irgendwie weiter?

    Edit: hab es gerade getestet da steht bei mir kein "icon-format" dabei...mom hier mal ein screen:
    [Blockierte Grafik: http://team2way.redio.de/screen/eef.jpg]

    (und noch mal wenn ich in den encoder hinten "BMP" reinschreib geht es, nur bei dem parameter "ICO" nicht)

    mfg team2way

    Einmal editiert, zuletzt von team2way (11. März 2009 um 15:26)

  • Ich würde sagen Progandy hat einfach sinnfrei auf seiner Tastatur getippt oder seine Katze ist drübergelaufen
    und rausgekommen ist ein Beitrag in deinem Thread...

    Du sollst sein Script ausführen, so wie ich das sehe soll das Script schauen ob du Encoder hast.

    Gruß

    Prajoss

    "Never touch a running System!"

  • hab ich ja schon siehe oben...und wie hilft mir das jetzt weiter. also dieser icon encoder scheint bei mir nicht installiert zu sein.

    was kann ich nun machen?

    mfg team2way

  • Sorry, da hab ich aus versehen einen Teil wieder gelöscht...
    Ich hab gemeint, das soll DjBasslord ausführen, da er gesagt hat, er hat diesen Encoder und ich möchte wissen, wie der Encoder heißt. Denn bei GDIplus ist der nicht dabei und im Internet finde ich keinen. (Das ist wieder toll von MS. Es gibt eine Encoderschnittstelle, aber keine Dokumentation :( )

  • ahh ok... also dann heißt jetzt nur abwarten tee trinken ^^, wenn das die einzige möglichkeit ist.

  • Oder IcoFX!
    Verwende ich gelegentlich auch, auch um Icons zu "basteln". Toll ist, dass du die Farben bearbeiten kannst, also wenn du die Farbtiefe herunterdrehst, kannst du Farbfehler auch ausbessern.

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

  • klar geht das mit externen programmen, aber mir ging es um die funktion (bilder in icons umzuwandeln), da ich ein icon programm geplant hatte und um dies zu verwirklichen fehlt mir warscheinlich der icon encoder.

    @DjBasslord pls stell deinen encoder mal zum download bereit
    falls noch jemand anderes eine lösung oder den encoder hat...pls posten!

    thx schon mal team2way

  • was ist mit DjBasslords "ICO"Encoder ... ?

    kann mir da vllt jemand helfen (ich brauch nur die funktion aus einem bild einen icon zu erstellen)?