###前提・実現したいこと
bitmap形式に変換した画像の周囲に、同じくbitmapで余白を作成しSoftwareBitmapに変換したいです。
方法がわからずとりあえず、for文でそれぞれのpixelにアクセスする力業を行いました。
###発生している問題・エラーメッセージ
デバッグエラーは起きませんが、ループが終わらず、またきちんと作動している自信もありません。
###該当のソースコード
private async Task AddMargin(WriteableBitmap wBitmap) { const int AddHeight = 210; const int AddWidth = 290; int cols = wBitmap.PixelWidth + AddWidth * 2; int rows = wBitmap.PixelHeight + AddHeight * 2; var marginWBitmap = new WriteableBitmap(cols, rows); var marginColor = new Color(); marginColor.A = 0; marginColor.R = 0; marginColor.G = 0; marginColor.B = 0; for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { if (AddWidth <= col & col < (AddWidth + wBitmap.PixelWidth) & AddHeight <= row & row < (AddHeight + wBitmap.PixelHeight)) { var color = wBitmap.GetPixel(col - AddWidth, row - AddHeight); marginWBitmap.SetPixel(col, row, color); } else { marginWBitmap.SetPixel(col, row, marginColor); } } } PreviewImage.Source = marginWBitmap; }
###試したこと
ループを狭くしたところ、ループから無事に抜けたので計算量が多すぎてループから抜けられないのではないかと考えています。
しかし、bitmapを表示したところ、予想とは違う画像が表示されたことから、どこか間違っているのではないかと思っています。
###補足情報(言語/FW/ツール等のバージョンなど)
UWP, visual basic 2017, Windows 10