PictureBox, skalowanie Image

0

Witam.

Mam klase ktora zwraca mi Image z dużą bitmapa w srodku. W tym Image sa zwykle linie w kolorze czarnym.
Na formie mam PictureBoxa, z ktorego zrobilem Graphics i teraz problem polega na tym:

Chciałbym wstawić tego Image do tej grafiki, ale zeskalowanego do mnejszych rozmiarów w taki sposób, aby Image nie tracil koloru (Przed skalowaniem jest kolor czarny, po skalowaniu, szary)

Znacie jakies rozwiazanie?

1

Mógłbyś wstawić jakiegoś screena bo jakoś nie mogę sobie wyobrazić o co Ci chodzi...?

0

Jak rozumiem skaler zlewa linie czarne i białe w szare? Spróbuj skalera który nie używa wygładzania obrazu.

0

Oba Image sa takie same, tyle ze jeden jest zeskalowany, a drugi nie.

//edit
@Krzysiorek:
mozesz podac przyklad?

0

Tak proste obrazki? Wystarczy na przeskalowanym obrazku pętlą sprawdzić czy piksel nie jest biały i ustawić mu kolor na czarny.

0

myslisz ze to optymalne rozwiazanie? dobra na razie po prostu inaczej je eksportuje :D

1

Niestety, o ile wiem nie da się wyłączyć antyaliasingu podczas skalowania bitmap...

Z rzeczy które przychodzą mi do głowy to:
1 -> sposób krzysiorka -> jeśli zrobisz to za pomocą GetPixel/SetPixel to wolny. Można to zrobić za to w brzydki ale szybszy sposób. Tak czy inaczej sposób przypomina zalepianie taśmą dziury w ścianie bo nie rozwiązuje problemu tylko go ukrywa... Ale lepiej się chyba z bitmapą nie da :(.
2 -> obsługa zdarzenia resized PictureBox-a i samodzielne skalowanie tej bitmapy. Rozwiązanie IMO pewniejsze ale też nie idealne.
3 -> to by było najlepsze, ale wymaga zmiany założeń - nie zwracasz bitmapy tylko obiekt typu GraphicPath - to coś w rodzaju grafiki wektorowej (najlepiej się nadaje dzięki temu do rysowania linii), możesz go skalować, obracać i kręcić ile chcesz a dalej będzie wyglądał tak samo. Tylko że w pictureboxie go nie wyświetlisz... (trzeba go rysować Graphics'em)

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