개정판 ce54afaf
issue #00000 signmanager image load 수정
Change-Id: I797d22f972829a94f74f426077d28d05d042a54c
KCOM/Controls/SignManager.xaml | ||
---|---|---|
138 | 138 |
<Image x:Name="preview" Stretch="Fill"/> |
139 | 139 |
</Border>--> |
140 | 140 |
</Grid> |
141 |
<Grid |
|
142 |
x:Name="panelProgress" |
|
143 |
Grid.RowSpan="3" |
|
144 |
Background="#7F808080" |
|
145 |
Visibility="Collapsed"> |
|
146 |
<StackPanel VerticalAlignment="Center"> |
|
147 |
<ProgressBar |
|
148 |
x:Name="progress" |
|
149 |
Width="400" |
|
150 |
Height="30" /> |
|
151 |
<TextBlock |
|
152 |
HorizontalAlignment="Center" |
|
153 |
FontStyle="Italic" |
|
154 |
FontWeight="Bold" |
|
155 |
Foreground="Black" |
|
156 |
Text="Waiting...." /> |
|
157 |
</StackPanel> |
|
158 |
</Grid> |
|
141 | 159 |
</Grid> |
142 | 160 |
</UserControl> |
KCOM/Controls/SignManager.xaml.cs | ||
---|---|---|
231 | 231 |
// 픽셀 데이터 복사 |
232 | 232 |
writeableBitmap.CopyPixels(pixelData, stride, 0); |
233 | 233 |
|
234 |
progress.Maximum = writeableBitmap.PixelHeight * writeableBitmap.PixelWidth; |
|
235 |
|
|
234 | 236 |
for (int y = 0; y < writeableBitmap.PixelHeight; y++) |
235 | 237 |
{ |
236 | 238 |
for (int x = 0; x < writeableBitmap.PixelWidth; x++) |
... | ... | |
251 | 253 |
Stroke stroke = new Stroke(points); |
252 | 254 |
inkCanvas.Strokes.Add(stroke); |
253 | 255 |
|
254 |
System.Threading.Thread.SpinWait(10); |
|
256 |
//System.Threading.Thread.SpinWait(10);
|
|
255 | 257 |
} |
258 |
|
|
259 |
// Update progress value |
|
260 |
progress.Dispatcher.Invoke(() => { |
|
261 |
progress.Value = y * writeableBitmap.PixelWidth + x + 1; |
|
262 |
}); |
|
256 | 263 |
} |
257 | 264 |
} |
258 | 265 |
|
... | ... | |
308 | 315 |
// 파일 선택 대화 상자 표시 |
309 | 316 |
if (openFileDialog.ShowDialog() == true) |
310 | 317 |
{ |
311 |
// 선택한 파일 경로 가져오기 |
|
312 |
string filePath = openFileDialog.FileName; |
|
318 |
panelProgress.Dispatcher.Invoke(() => panelProgress.Visibility = Visibility.Visible); |
|
319 |
|
|
320 |
try |
|
321 |
{ |
|
322 |
// 선택한 파일 경로 가져오기 |
|
323 |
string filePath = openFileDialog.FileName; |
|
324 |
|
|
325 |
// BitmapImage 생성 및 파일 로드 |
|
326 |
BitmapImage bitmapImage = new BitmapImage(); |
|
327 |
bitmapImage.BeginInit(); |
|
328 |
bitmapImage.UriSource = new Uri(filePath); |
|
329 |
bitmapImage.EndInit(); |
|
313 | 330 |
|
314 |
// BitmapImage 생성 및 파일 로드 |
|
315 |
BitmapImage bitmapImage = new BitmapImage(); |
|
316 |
bitmapImage.BeginInit(); |
|
317 |
bitmapImage.UriSource = new Uri(filePath); |
|
318 |
bitmapImage.EndInit(); |
|
331 |
var strokes = ConvertImageToStrokeCollection(bitmapImage); |
|
319 | 332 |
|
320 |
var strokes = ConvertImageToStrokeCollection(bitmapImage);
|
|
333 |
SignCanvas.Strokes.Add(strokes);
|
|
321 | 334 |
|
322 |
SignCanvas.Strokes.Add(strokes); |
|
335 |
} |
|
336 |
catch (Exception) |
|
337 |
{ |
|
338 |
MessageBox.Show("이미지 오류입니다."); |
|
339 |
} |
|
340 |
finally |
|
341 |
{ |
|
342 |
panelProgress.Dispatcher.Invoke(() => panelProgress.Visibility = Visibility.Collapsed); |
|
343 |
} |
|
323 | 344 |
} |
324 | 345 |
} |
325 | 346 |
} |
내보내기 Unified diff