Web -sivulla olevan kuvan puoliautomaattinen_tallennus ?

Miten teen ohjelman, joka osaisi puoliautomaattisesti tallentaa web -sivulla olevan kuvan ?

Suoraan selaimen "Tallenna kuva nimellä" -toiminto ei miellytä, koska yhä useammalla web -sivulla kuva ei ole mitään normaalia kuvaformaattia, vaan ".webp" -muotoa.

Tuo ".webp" -muoto ei minulle kelpaa.
Manuaalisestihan web -sivulla olevan kuvan voi kopioida (Windowsilla) näin:

1. Paina (kun web -sivun sisältävä ikkuna on aktiivinen ikkuna) Alt-PrintScreen (monissa kannettavissa joudut painamaan myös Fn, paitsi jos käytät erillistä ulkoista näppäimistöä).

2. Käynnistä Paint (paint.exe)

3. Pienennä oletuskuva minimiinsä Ctrl-E, 8x8 pikseliä

4. Paina Ctrl-Insert (tai Ctrl-V)

5. Siirrä kopioitua kuvaa niin, että haluamasi kuva on aivan vasemmassa yläkulmassa Paintin editointialuetta

6. Valitse mikä tahansa työkalu (mutta älä tee sillä mitään).

7. Valitse uudelleen valintatyökalu (katkoviivalla merkitty suorakulmio)

8. Siirrä hiirikursori siten, että se on haluamasi kuvan oikeassa alakulmassa

9. Paina Ctrl-E, ja syötä laatikkoon tämänhetkinen kohdistimen sijainti (X ja Y -koordinaatit), varmista vielä, että koordinaatit tulivat oikein. ja paina sitten Enter.

10. JOS mokasit ja kuvasta leikkautui liikaa , palauta edellinen tilanne takaisin painamalla Ctrl-Z ja jatka uudelleen kohdasta 8, mutta ole tällä kertaa huolellisempi !

Ongelma on siis siinä, että:

1) jos yrität tallentaa kuvan suoraan selaimen omilla toiminnoilla, et saa kuvaa tallennettua tutuissa PNG, JPG tai GIF -muodossa, vaan selain pakottaa muodon olevan ".webp" mitä EI haluta

2) ja jos taas käytät apuna leiketaulua ja paint.exe -ohjelmaa, niin tieto siitä, minkä kuvan (koko ja sijainti) ei välity mukana, vaan tuo Alt-PrintScreen kopio KOKO ikkunan, jolloin joudut itse uudelleen rajaamaan kuvan.

Jos koko Paint.EXE:n käytön korvaisi omatekoisella ohjelmalla, niin saisiko jotenkin siirtymään mukana tiedon, mikä on halutun kuvan koordinaatit ja koko pikseleinä, jolloin nuo manuaaliset työvaiheet voisi automatisoida.

Periaatteessahan tuolloin ei tarvitsisi itse painaa Alt-PrintScreen, vaan oma ohjelma voisi suoraan kuvakaapata selaimen näytöltä kopion, mutta silti jää kysymys: miten kuvan saisi automaattisesti rajattua oikein ?

Ehkä voisi aluksi selvittää, missä on hiirikohdistin (Cursor), mutta vaikka se olisi halutun kuvan päällä, miten selvittää ohjelmallisesti kuvan rajat ?

HUOM: EN halua tähän JavaScript -pohjaisia ratkaisuja !!!

Syy: Web- palvelimien omistajien on halutessaan hyvin helppoa tehdä JavaScript -pohjaisista ratkaisuista toimimattomia.

Esimerkkinä vaikkapa ns. AdBlokkerit, joita selaimiin on runsaasti tarjolla sekä selaimen vakio-ominaisuuksina (Opera, Vivaldi) että myös erillisinä selainlaajennuksina ainakin Firefoxiin, ja osittain myös Google Chromeen, mutta Googlella on ollut aggressiivinen politiikka poistaa noita AdBlock -laajennuksia koska ne syövät Googlen mainostuloja.

Jokaisella itseään kunnioittavalla kaupallisella sivustolla on nykyisin ns. Anti-AdBlocker, joka pyrkii a) estämään AdBlockerin toiminnan tai jos ei siihen pysty, niin b) estämään sivun näkymisen kokonaan, jos havaitsee, että käyttäjällä on AdBlocker käytössä.

Ja tuo ns. Anti-AdBlocker perustuu nimenomaan JavaScriptiin, eli juuri siksi sivuston omistajan on niin helppo estää AdBlockereita tai vaihtoehtoisesti estää sivun näkyminen jos AdBlockeria pyritään käyttämään.

Miten siis saisi selaimesta kaapattua tiedon siitä, että:

kun kohdistin on kuvan päällä, niin mitkä ovat kuvan koordinaatit ja koko ?

Tällöin voisi automaattisella ohjelmalla rajata selainikkunan kuvakaappauksesta vain se osa, jossa on haluttu kuva, ja muut osat rajataan ulkopuolelle - tällöin halutun kuvan voisi helposti tallentaa esim. png -tiedostona.
291538
Äänestä

Muut lukivat myös

Vastaukset 29

Vanhimmat

Ainakin Pythonilla on from selenium import webdriver kirjasto jolla olen kuvia kaapannut nettisivuilta. Automaattisesti.

Äänestä
  • Ja käyttämällä jotain grafiikkakirjastoa pythonissa, voi kuvan muuntaa esim .png ja tallentaa levylle.

    Äänestä

  • selenium - käsittääkseni tuo selenium on JavaScript -pohjainen hirvitys, ja se, että käytät sitä Pythonista, ei mitenkään muuta tätä tosiasiaa.

    Eli siis web -palvelimen ylläpitäjä voi halutessaan tehdä kaikista selenium -pohjaisista ratkaisuista toimimattoman oman web -palvelimensa jakamilla sivuilla.

    Juuri tuosta syystä ei JavaScript -pohjaiset ratkaisut kiinnosta, ja käsittääkseni selenium nimenomaan perustuu JavaScriptiin.

    kuvakaapparin pitää toimia sellaisella tavalla, ettei web -sivuston tai palvelimen omistaja pysty havaitsemaan sen käyttöä.

    Äänestä

  • KUOLEMA WINDOWSISLLE

    Äänestä

  • Windowspotilaalla taas paha ongelma!

    Äänestä

  • Jos ottasit sen sormen pois persiistä, voisi jotain saada aikaiseksikin!

    Äänestä

"Suoraan selaimen "Tallenna kuva nimellä" -toiminto ei miellytä, koska yhä useammalla web -sivulla kuva ei ole mitään normaalia kuvaformaattia, vaan ".webp" -muotoa."

Ihan normaali kuvaformaatti se on. Ollut joka puolella 3,5v.

Jos se ei johonkin käy niin helpointa on vain muuttaa ne png:ksi myöhemmin.

Äänestä
  • "Ihan normaali kuvaformaatti se on. Ollut joka puolella 3,5v."

    Ei todellakaan ole normaali kuvaformaatti.

    Jos se olisi normaali, niin jossain olisi tarjolla:

    1) loppukäyttäjille ohjelma, joka osaa muuntaa webp -> png (tai myös webp -> bmp, jos tätä halutaan)

    2) ohjelmistokehittäjille DLL, joka tarjoaa funktion, jolle annetaan webp -tiedoston nimi, sekä uuden luotavan PNG -tiedoston nimi, jolloin funktio muuntaa webp -> png.
    Mielellään myös vastaava(t) funktio(t) tilanteeseen, jossa lähde ja/tai kohde eivät ole tiedostoja, vaan RAM -muistissa olevaa dataa.

    monikko siksi, että kun yleensä hyviin ohjelmointitapoihin kuuluu, että kutsuja varaa muistialueen tuolle PNG -datalle, mutta ko. datan koko ei ole etukäteen tiedossa, niin tästä tarve useampaan funktioon.

    Äänestä

  • Anonyymi00033 kirjoitti:

    "Ihan normaali kuvaformaatti se on. Ollut joka puolella 3,5v."

    Ei todellakaan ole normaali kuvaformaatti.

    Jos se olisi normaali, niin jossain olisi tarjolla:

    1) loppukäyttäjille ohjelma, joka osaa muuntaa webp -> png (tai myös webp -> bmp, jos tätä halutaan)

    2) ohjelmistokehittäjille DLL, joka tarjoaa funktion, jolle annetaan webp -tiedoston nimi, sekä uuden luotavan PNG -tiedoston nimi, jolloin funktio muuntaa webp -> png.
    Mielellään myös vastaava(t) funktio(t) tilanteeseen, jossa lähde ja/tai kohde eivät ole tiedostoja, vaan RAM -muistissa olevaa dataa.

    monikko siksi, että kun yleensä hyviin ohjelmointitapoihin kuuluu, että kutsuja varaa muistialueen tuolle PNG -datalle, mutta ko. datan koko ei ole etukäteen tiedossa, niin tästä tarve useampaan funktioon.

    "loppukäyttäjille ohjelma, joka osaa muuntaa webp -> png (tai myös webp -> bmp, jos tätä halutaan)"

    Kaikki yleiset kuvankäsittelyohjelmat osaa avata.

    "ohjelmistokehittäjille DLL"

    Ohjelmistokehittäjille on kirjasto tehty ajat sitten: https://chromium.googlesource.com/webm/libwebp

    Äänestä

  • Anonyymi00036 kirjoitti:

    "loppukäyttäjille ohjelma, joka osaa muuntaa webp -> png (tai myös webp -> bmp, jos tätä halutaan)"

    Kaikki yleiset kuvankäsittelyohjelmat osaa avata.

    "ohjelmistokehittäjille DLL"

    Ohjelmistokehittäjille on kirjasto tehty ajat sitten: https://chromium.googlesource.com/webm/libwebp

    "Kaikki yleiset kuvankäsittelyohjelmat osaa avata."

    Minulle se AINOA OIKEA kuvankäsittelyohjelma on Windowsin mukana tuleva paint.exe

    Ja paint.exe EI osaa lukea eikä kirjoittaa .webp -formaatissa olevia kuvia.

    Kuinkahan helvetillisen vaikeaa on kääntää tuo libwebp DLL:ksi ?

    Ja löytyykö dokumentaatio, miten tuota DLL:ää käytetään ?

    Äänestä

MENE NYT HOITOON!

Äänestä

Avaajahan on tyhmä kuin saapas tai jopa vihapapparainen.

Äänestä
  • Lähen täysin älyvapaa!

    Äänestä

  • Anonyymi00020 kirjoitti:

    Lähen täysin älyvapaa!

    UKRAINALLE KUOLEMA

    Äänestä

Siinä on tarpeeksi puoliautomaattista, kun painat kolmen näppäimen kombon

Shift ⊹ Win ⊹ s

joka käynnistää leiketyökalun. Maalaat hiirellä ruudulta haluamasi alueen/kuvan ja kun vapautat hiiren niin kuvakaappaus lennähtää leikepöydälle mistä se on liitettävissä vaikka paint -ohjelmaan tallennettavaksi halutussa formaatissa.

Äänestä
  • Menisit jo hoitoon!

    Äänestä

  • WINDOWSILLE KUOLEMA

    Äänestä

Voi että miten vaikeasti asioita tehdään, jos kerrot kuinka monta vuotta olet tietokonetta käyttänyt, minä kerron sinulle tavan kopioida kuvat koneelle hyvin helposti.

Muutama vuosi takaperin tämä sama asia nousi esiin toisen ongelman yhteydessä, ja silloin jankutin sitä vähänväliä että voit sen tehdä myös näin.

Äänestä
  • Lisätäänpä että kikka toimii vain kun kuva voi saada fokuksen.

    Äänestä

  • Anonyymi00013 kirjoitti:

    Lisätäänpä että kikka toimii vain kun kuva voi saada fokuksen.

    Lisätäänpä vielä ettei tule toimimaan myöskään videoilla.

    Äänestä

  • Anonyymi00014 kirjoitti:

    Lisätäänpä vielä ettei tule toimimaan myöskään videoilla.

    Lisätäänpä vielä, uBlock Origin aktiivina olo tulee vaikuttamaan mitä kikka tulee siirtämään koneelle, kuva tai linkki.

    Äänestä

  • Anonyymi00015 kirjoitti:

    Lisätäänpä vielä, uBlock Origin aktiivina olo tulee vaikuttamaan mitä kikka tulee siirtämään koneelle, kuva tai linkki.

    uBlock Origin on haitake!

    Äänestä

  • Ja uBlock Origin on haitake!

    Äänestä

  • Anonyymi00014 kirjoitti:

    Lisätäänpä vielä ettei tule toimimaan myöskään videoilla.

    "Lisätäänpä vielä ettei tule toimimaan myöskään videoilla"

    HaHaa!

    Olen itse tehnyt ohjelman, joka osaa ottaa useita kuvakaappauksia sekunnissa (hyödyntää Windowsin SetTimer() -API -funktiota).

    Toimii monessa tapauksessa myös videoille. Toki jos se video on jollain lailla kopiosuojattu, niin silloin voi käydä niin, että kaappaa vain mustan suorakulmion siitä kohdassa, missä ihmiskäyttäjä näkee videon. Myös näytönohjaimen asetukset voivat vaikuttaa asiaan.

    Mistä toinen kysymys: JOS näytönohjaimen ajuri oletuksena on ns. "kiihdytetty versio" niin usein noissa on sisäänrakennettu "anti-debug" -ominaisuus.
    JOS näin on, mistä saa samalle näytönohjaimelle sellaisen ajurin, jossa EI ole "anti-debug" -ominaisuutta (hyväksyn sen, että tällöin kyse on yleensä kiihdyttämättömästä versiosta, koska näytönohjainvalmistajat haluavat suojata kiihdytyskoodinsa uteliaiden tutkimiselta, ja siksi kiihdytyksellä varustetuissa versioissa ajurista yleensä aina on tuo "anti-debug" -ominaisuus) ?

    Äänestä

Miten voi olla noin vaikeaa elämä.
Tarjolla on pilvin pimein kuvankaappausohjelmia.
Sen kuin avaat sen webp:n uuteen ikkunaan
ja valitset kaapparista alueen, käsin tosin, eikä
puoliautomaattisesti. Tallenna .jpg or whatever.

Äänestä

Joo, kaikenlaista kaapparia tarjoaa itse järjestelmäkin, mutta kaikista parhaimpana olen pitänyt, RAAHAA ja PUDOTA menetelmää hiirellä tehtynä. Ja tällä menetelmällä YouTube videoista kopioituu linkki tai kuva riippuen uBlock Origin ohjelman tilasta.

Äänestä
  • Kuukauden paras vinkki, KIITOS SINULLE.

    Äänestä

  • Ja varmaankin kiitokset kuuluu TURBOLLE, on ollut ainoa näinä vuosina joka on todella tiennyt mistä puhuu.

    Äänestä

  • Anonyymi00032 kirjoitti:

    Ja varmaankin kiitokset kuuluu TURBOLLE, on ollut ainoa näinä vuosina joka on todella tiennyt mistä puhuu.

    10 miljardia salasanaa jaossa - kaikkien aikojen suurin salasanavuoto !

    Äänestä

Ketjusta on poistettu 9 sääntöjenvastaista viestiä.

Kommentoi aloitusta


Anonyymi-ap kirjoitti:

Miten teen ohjelman, joka osaisi puoliautomaattisesti tallentaa web -sivulla olevan kuvan ?

Suoraan selaimen "Tallenna kuva nimellä" -toiminto ei miellytä, koska yhä useammalla web -sivulla kuva ei ole mitään normaalia kuvaformaattia, vaan ".webp" -muotoa.

Tuo ".webp" -muoto ei minulle kelpaa.
Manuaalisestihan web -sivulla olevan kuvan voi kopioida (Windowsilla) näin:

1. Paina (kun web -sivun sisältävä ikkuna on aktiivinen ikkuna) Alt-PrintScreen (monissa kannettavissa joudut painamaan myös Fn, paitsi jos käytät erillistä ulkoista näppäimistöä).

2. Käynnistä Paint (paint.exe)

3. Pienennä oletuskuva minimiinsä Ctrl-E, 8x8 pikseliä

4. Paina Ctrl-Insert (tai Ctrl-V)

5. Siirrä kopioitua kuvaa niin, että haluamasi kuva on aivan vasemmassa yläkulmassa Paintin editointialuetta

6. Valitse mikä tahansa työkalu (mutta älä tee sillä mitään).

7. Valitse uudelleen valintatyökalu (katkoviivalla merkitty suorakulmio)

8. Siirrä hiirikursori siten, että se on haluamasi kuvan oikeassa alakulmassa

9. Paina Ctrl-E, ja syötä laatikkoon tämänhetkinen kohdistimen sijainti (X ja Y -koordinaatit), varmista vielä, että koordinaatit tulivat oikein. ja paina sitten Enter.

10. JOS mokasit ja kuvasta leikkautui liikaa , palauta edellinen tilanne takaisin painamalla Ctrl-Z ja jatka uudelleen kohdasta 8, mutta ole tällä kertaa huolellisempi !

Ongelma on siis siinä, että:

1) jos yrität tallentaa kuvan suoraan selaimen omilla toiminnoilla, et saa kuvaa tallennettua tutuissa PNG, JPG tai GIF -muodossa, vaan selain pakottaa muodon olevan ".webp" mitä EI haluta

2) ja jos taas käytät apuna leiketaulua ja paint.exe -ohjelmaa, niin tieto siitä, minkä kuvan (koko ja sijainti) ei välity mukana, vaan tuo Alt-PrintScreen kopio KOKO ikkunan, jolloin joudut itse uudelleen rajaamaan kuvan.

Jos koko Paint.EXE:n käytön korvaisi omatekoisella ohjelmalla, niin saisiko jotenkin siirtymään mukana tiedon, mikä on halutun kuvan koordinaatit ja koko pikseleinä, jolloin nuo manuaaliset työvaiheet voisi automatisoida.

Periaatteessahan tuolloin ei tarvitsisi itse painaa Alt-PrintScreen, vaan oma ohjelma voisi suoraan kuvakaapata selaimen näytöltä kopion, mutta silti jää kysymys: miten kuvan saisi automaattisesti rajattua oikein ?

Ehkä voisi aluksi selvittää, missä on hiirikohdistin (Cursor), mutta vaikka se olisi halutun kuvan päällä, miten selvittää ohjelmallisesti kuvan rajat ?

HUOM: EN halua tähän JavaScript -pohjaisia ratkaisuja !!!

Syy: Web- palvelimien omistajien on halutessaan hyvin helppoa tehdä JavaScript -pohjaisista ratkaisuista toimimattomia.

Esimerkkinä vaikkapa ns. AdBlokkerit, joita selaimiin on runsaasti tarjolla sekä selaimen vakio-ominaisuuksina (Opera, Vivaldi) että myös erillisinä selainlaajennuksina ainakin Firefoxiin, ja osittain myös Google Chromeen, mutta Googlella on ollut aggressiivinen politiikka poistaa noita AdBlock -laajennuksia koska ne syövät Googlen mainostuloja.

Jokaisella itseään kunnioittavalla kaupallisella sivustolla on nykyisin ns. Anti-AdBlocker, joka pyrkii a) estämään AdBlockerin toiminnan tai jos ei siihen pysty, niin b) estämään sivun näkymisen kokonaan, jos havaitsee, että käyttäjällä on AdBlocker käytössä.

Ja tuo ns. Anti-AdBlocker perustuu nimenomaan JavaScriptiin, eli juuri siksi sivuston omistajan on niin helppo estää AdBlockereita tai vaihtoehtoisesti estää sivun näkyminen jos AdBlockeria pyritään käyttämään.

Miten siis saisi selaimesta kaapattua tiedon siitä, että:

kun kohdistin on kuvan päällä, niin mitkä ovat kuvan koordinaatit ja koko ?

Tällöin voisi automaattisella ohjelmalla rajata selainikkunan kuvakaappauksesta vain se osa, jossa on haluttu kuva, ja muut osat rajataan ulkopuolelle - tällöin halutun kuvan voisi helposti tallentaa esim. png -tiedostona.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu