Gråtoner og andre toner

Hvorfor «ødelegger» Firemonkey bildene? Hæææ? Ødelegger??? Yess Sir, de gjør om alle bildeformater internt til RGB!

Jeg tenkte ikke over det før jeg ønsket å få bildeinfo fra biblioteket. Uansett hvilket bilde jeg lastet opp («åpnet»), fikk jeg til svar at det var 32 bit RGB! Det betyr 3×8 bit + alpha.

Etter et par dager med hardkjøring av Google, var svaret gitt. Det bare var sånn!

Hva betydde det for meg? OK, Hvordan lages gråtoner f.eks. på skjermen? Jadajada, skjermen er RGB den! Oissann! Hva med printeren da? Den bruker CMYK, helsort farge og rasterteknikk, min venn! Gråtoner finnes ikke i vår daglige verden!

Finnes det egentlig et sort-hvitt kamera i dag? Jeg er ikke fotograf, så jeg vet egentlig ikke. Jeg tar sjansen og sier nei. Du må antagelig tilbake til de gamle analoge kameraene, med film. Det finnes digitale kamera som tar B&W 🙂

Det finnes en rekke andre spesialformater, jeg er klar over det, men til daglig bruk, ordne og fikse litt på bilder fra mobilen, så er Firemonkey grafikkbibliotek fullt ut brukbart, terningkast 6.

Til profesjonelt bruk, er det ubrukelig.

Et gråtone-bilde fra mitt program:

Gamlisen

RAD Studio

Jeg har lagt inn følgende nytt i menyen (om RAD Studio):

Den leveres med to programmerings språk: Delphi (Pascal) og C++ Builder, og det er C++ jeg programmerer i. Pascal? Som en hardcore C/C++ programmerer «hater» jeg Pascal 🙂 Nå trår jeg antagelig en del på tærne, men Pascal ses på som et skolespråk, C++ er for profene 🙂

Du så jeg avsluttet med et smilefjes, ikke sant?

Skal du skaffe deg en betalt versjon, koster den skjorta og mer til. Heldigvis finnes det en «Community» versjon, og den er gratis. Du må imidlertid velge ett av språkene, C++ eller Delphi (Pascal). Delphi er Borlands object versjon av Pascal. Da må du finne deg i at alt nytt kommer først til Delphi. Delphi er Borland guttas «førstefødte» baby, og slik vil det alltid være.

Som et lite eksempel: Google forlanger nå 64-bits kompilerte programmer. Det har du for Delphi, men ikke (foreløpig?) for C++, kun 32 bits. Noe av det samme har du for linux. Du får Delphi for linux, men ikke C++.

Jeg avslutter den negative vinklingen med: Grafikkbiblioteket for multi-device løsningen, Firemonkey, jobber kun med 32 bits RGB. Kan du leve med at Firemonkey gjør om alle formater til 32-bits RGB internt, er RAD Studio et fantastisk verktøy, etter min mening.

 32-bits RGB problemet gjelder her i Januar 2020. 

Internasjonalisering og stilendring

Neste trinn var å få til en praktisk løsning på internasjonalisering og endring av stil («Style») og farger ved runtime. Hva med en PhotoShop Clone? Hehe, litt over hva jeg kan få til, antagelig, men et skall med tomme menyer er jo mulig 🙂

Det tok forøvrig over én måned bare å taste inn all menyteksten. All teksten ligger nå i string-lister som kan deles ut til en oversetter. Den oversatte teksten legges inn i en DLL som kompileres og linkes.

Resultatet ble ikke så verst, om jeg skal si det selv ut fra bildene nedenfor 🙂

Det siste bildet viser dessuten noen fotofiltre vi får med i C++ Builder 🙂

C++ Builder Intro

Har begynt å legge inn litt brukervegledning for C++ Builder, foreløpig kun på laveste nivå. Jeg kommer ikke til å lage nye innlegg for hver enkel side.

Igjen: Dette er ikke tenkt som lærebok i programmering med C++ Builder, det er mer en huskeliste for meg slik at jeg vet hvor jeg finner ting og tang.

Utvidelse av menyer

Jeg fortsetter med litt mer tekst og reorganisering av menyen. Lagt inn et Første Inntrykk som hovedstopp i menyen.

Førsteinntrykket er vel da omtrent ferdig.

Lightwave er ulik andre 3D-programmer

Lightwave er ulik andre 3D-programmer, særlig på ett område: Lightwave er delt I to programmer. Hva???? Yessss Sir, og vi har et elsk-hat forhold til dette. Enten elsker du det, eller hater det og nekter å bruke det av den grunn.

Dette systemet kommer ofte opp på forumet, og det legges fram ønsker om å slå sammen disse to. Jeg har lært meg å leve med det, og jeg liker det faktisk. Du slipper jo å få overlessede menystolper.

En annen ting som gjør Lightwave litt ulik andre, er at det brukes tekst og ikke ikoner på menystolpene. Det synes jeg også er en stor fordel. Du slipper å gå rundt å huske hva Create, Modify, Multiply, Layers og alle de andre funksjonene har som ikoner. OK da, det er et elsk-hat forhold til dette også egentlig.

Ta en titt på de to neste bildene:

Lightwave Modeler
Lightwave Layout

Modellering I Lightwave

Metode 1
Du har stort sett to metoder i Lightwave for å modellere et objekt. Det er vel egentlig nesten umulig å si at den ene er mer riktig enn den andre, men den de fleste bruker, er å starte med en av de primitive utgangsmodellene, en boks, en ball, en kon, osv. og så dra og strekke i deler av denne for så å ende opp med den modellen de ønsker.

metode 1
Metode 1

Metode 2
Metoden ovenfor får jeg ikke til å bruke, kanskje mest fordi jeg er teknisk utdannet. Skal jeg f.eks. bygge et hus eller en båt, hva starter jeg med da? Jo bjelkelaget i huset eller spantene i båten. Denne metoden overført til Lightwave betyr å tegne kurver (med Splines) og så etterpå «Patche», dvs. legge ut et antall polygoner mellom dem.

metode 2-1
metode 2

I denne metoden må endepunktene «loddes» sammen og så kan du «Patche»:

metode 2-c
Metode 2-c

Det er absolutt mye mer som kan sies om disse metodene, men dette er vel en passe generell innledning. Avslutningsvis kan jeg vise mitt av-og-på prosjekt slik det fremstår når det er nesten ferdig i en 1:1 skala:

metode 2-d
metode 2-d