AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rundungs problem?

Ein Thema von EWeiss · begonnen am 1. Jun 2017 · letzter Beitrag vom 1. Jun 2017
 
EWeiss
(Gast)

n/a Beiträge
 
#1

Rundungs problem?

  Alt 1. Jun 2017, 17:18
Kann diese Funktion ein Rundungs Problem verursachen?

Delphi-Quellcode:
        for y := 0 to (imgH - 1) do
        begin
          for x := 0 to (imgW - 1) do
          begin
            if pBits.rgbReserved > 0 then
            begin
              AlphaCoef := (255 shl 8) div pBits.rgbReserved;
              pBits.rgbBlue := ((pBits.rgbBlue * AlphaCoef) shr 8);
              pBits.rgbGreen := ((pBits.rgbGreen * AlphaCoef) shr 8);
              pBits.rgbRed := ((pBits.rgbRed * AlphaCoef) shr 8);
            end;
            inc(pBits);
          end;
        end;
wenn ja nehme ich besser

Delphi-Quellcode:
        for y := 0 to (imgH - 1) do
        begin
          for x := 0 to (imgW - 1) do
          begin
            if pBits.rgbReserved > 0 then
            begin
              AlphaCoef := (255 shl 16) div pBits.rgbReserved;
              pBits.rgbBlue := ((pBits.rgbBlue * AlphaCoef) shr 16);
              pBits.rgbGreen := ((pBits.rgbGreen * AlphaCoef) shr 16);
              pBits.rgbRed := ((pBits.rgbRed * AlphaCoef) shr 16);
            end;
            inc(pBits);
          end;
        end;
Ich möchte nur eine Bestätigung das es so ist... Danke.

vorher hatte ich es so.. was aber bedingt durch single(float) um ein 4faches langsamer ist.
bitmap: 4096x4096
elapsed: 2763 bei Verwendung von single.
elapsed: 627 und ULong.

Delphi-Quellcode:
        for IntI := (bm.bmWidth * bm.bmHeight) downto 1 do
        begin
          if pBits.rgbReserved > 0 then
          begin
            AlphaCoef := (pBits.rgbReserved / 255);
            pBits.rgbBlue := round(pBits.rgbBlue / AlphaCoef);
            pBits.rgbGreen := round(pBits.rgbGreen / AlphaCoef);
            pBits.rgbRed := round(pBits.rgbRed / AlphaCoef);
          end;
          Inc(pBits);
        end;
gruss

Geändert von EWeiss ( 1. Jun 2017 um 17:35 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz