rozjasnienie png

0

uzywam komponentu TPNGImage 1.4 do wczytywania obrazow png oczywiscie
czy ktos wie jak po najechaniu mysza na ten obraz rozjasnic go a po opuszczeniu mysza aby <ort>powrucil </ort>do pierwotnego stanu ?

0

Jak chodzi o rozjaśnianie, to spróbuj do każdego składowego koloru dodać jakąś wartość. Uważaj oczywście na dodanie więcej niż to możliwe (suma kolor składowy+dodana wartość>255).

0

zrobic zmienna przechowujaca rozjasniony obrazek. gdy najedzie sie kursorem nastapi podmiana.. image -> zmienna, zmienna -> image (of coz przy uzyciu zmiennej pomocniczej :P)

0

suma kolor składowy+dodana wartość>255

A nie "suma kolor składowy+dodana wartość<256" ??

0
arhi napisał(a)

suma kolor składowy+dodana wartość>255

A nie "suma kolor składowy+dodana wartość<256" ??

No tak, albo 'suma kolor składowy+dodana wartość=<255' ;) Ważny jest efekt ;p Polecam swissdelphicenter.ch :]

0

no cienki jestem nie umie tego zrobic

prosze moze ktos moze napisac taka gotowa procedurke rozjasnienia image1

[browar]

0
With Image1 do for X:=1 to widh do for Y:=1 to height do begin
  Red:=Canvas.Pixels[X, Y] div $010000;
  Green:=Canvas.Pixels[X, Y] mod $010000 div $000100;
  Blue:=Canvas.Pixels[X, Y] mod $000100;
  {Opcja pierwsza - rozjaśnianie + }
  Red:=Red+10; //Oczywiście 10 to przykład
  If Red>$FF then Red:=$FF;
  Green:=Green+10; //Oczywiście 10 to przykład
  If Green>$FF then Green:=$FF;
  Blue:=Blue+10; //Oczywiście 10 to przykład
  If Blue>$FF then Blue:=$FF;
  {Opcja druga - rozjaśnianie * }
  Red:=Red*1.5; //Oczywiście 1.5 to przykład
  If Red>$FF then Red:=$FF;
  Green:=Green*1.5; //Oczywiście 1.5 to przykład
  If Green>$FF then Green:=$FF;
  Blue:=Blue*1.5; //Oczywiście 1.5 to przykład
  If Blue>$FF then Blue:=$FF;
  Canvas.Pixels[X, Y]:=Red*$010000+Green*$000100+Blue*$000001;
  end;

Nie jest to optymalny kod, ale działa i wszystko chyba widać co się dzieje.
//P.S. Oczywiście trzeba zadeklarować X, Y, Red, Green, Blue: Integer; wcześniej.
//Passage: Ale ten Twój kod nie rozjaśni równomiernie. Poza tym jak będzie powiedzmy kolor $0000FF, to po tym Twoim "rozjaśnieniu" będzie $303129, czyli z jasnego niebieskiego zrobi się niemal czarny.

0
for i:=0 to image1.Height do 
 for j:=0 to image1.Width do
   if image1.Canvas.Pixels[j,i]+$303030<$EFEFEF then
     image1.Canvas.Pixels[j,i]:=image1.canvas.pixels[j,i]+$303030;

moze cie to zadowoli :P pobaw sie wartosciami kolorow jak nie bedzie pasilo.</delphi>

1 użytkowników online, w tym zalogowanych: 0, gości: 1