을 저장하는 방법은 BitmapImage가 있습니다. 이 작업 방법에 대한 예제를 찾을 수 없습니까? 두 번째 질문. 픽셀의 색상을 가져와야합니다 (예 : Color cl=image.GetColorPixel(X,Y)
). 어떻게 할 수 있습니까? 감사합니다.BitmapImage WinRT
답변
이 링크를 살펴보십시오. WriteableBitmap의 일부 조작을 보여주는 스 니펫이 있습니다. http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.media.imaging.writeablebitmap.aspx
예제는 읽기지만 글을 작성하는 것은 어렵지 않습니다.
픽셀을 반복하려면 PixelData 속성을 살펴보십시오.
BitmapImage
을 저장하거나 수정할 수 없습니다. 대신 WriteableBitmap
을 사용해야합니다. BitmapImage로 시작할 수는 없다면 - UriSource
속성을 확인하여 동일한 이미지를 다시 다운로드하거나 WriteableBitmap
을 시작 부분과 동일한 내용으로로드하십시오 (BitmapImage
). 어떤 경우에는 UriSource
이 null 일 수 있습니다. BitmapImage
에 URI를 부여하여로드 했더라도 수동으로 재설정하거나 setting CacheMode
to BitmapCache
on an Image
that's using the given BitmapImage
as its Source
으로 재설정 할 수 있습니다.
다음은 웹에서 언젠가 전에 찾은 코드입니다. 확실하지는 않지만 SDML 샘플이나 winrt 블로그에서 바로 수정하면
모두가 이미 게시 된 것처럼 WritabelBitmap 이미지로 내려 와서 디코더를 만들어 스트림으로 푸시합니다. .
/// <summary>
///
/// </summary>
/// <param name="writeableBitmap"></param>
/// <param name="outputFile"></param>
/// <param name="encoderId"></param>
/// <returns></returns>
public static async Task SaveToFile(
this WriteableBitmap writeableBitmap,
IStorageFile outputFile,
Guid encoderId)
{
try
{
Stream stream = writeableBitmap.PixelBuffer.AsStream();
byte[] pixels = new byte[(uint)stream.Length];
await stream.ReadAsync(pixels, 0, pixels.Length);
using (var writeStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(encoderId, writeStream);
encoder.SetPixelData(
BitmapPixelFormat.Bgra8,
BitmapAlphaMode.Premultiplied,
(uint)writeableBitmap.PixelWidth,
(uint)writeableBitmap.PixelHeight,
96,
96,
pixels);
await encoder.FlushAsync();
using (var outputStream = writeStream.GetOutputStreamAt(0))
{
await outputStream.FlushAsync();
}
}
}
catch (Exception ex)
{
string s = ex.ToString();
}
}
xaml에서 UI 요소를 가져 와서 운이 좋으면 이미지로 저장하려고합니다. wpf 있음 매개 변수로 UIelement 걸리는 쓰기 가능 비트 맵 메서드가 있지만 그 거기에 Windows 응용 프로그램을 저장하지 않습니다.
DirectX를 사용할 수는 있지만 매우 복잡한 방법입니다. 저장소에있는 대부분의 그리기 응용 프로그램은 JavaScript를 사용하여 저장하는 것이 훨씬 쉽습니다.
다음과 같은 방법으로 BitmapImage를 저장할 수 있습니다.
Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile sampleFile = await localFolder.CreateFileAsync("image.png");
await FileIO.WriteBytesAsync(sampleFile, bytes);
의 image.png는 응용 프로그램의 로컬 폴더에 저장됩니다.
희망 하시겠습니까?
- Binaya 라즈 쉬 레스타
- 1. BitmapImage SetSourceAsync in WinRT C++
- 2. WriteableBitmap 대 BitmapImage 무엇을 사용합니까?
- 3. BitmapImage ImageOpened 이벤트가 실행되지 않음
- 4. Resize BitmapImage
- 5. Windows 8.1 Byte 배열 또는 스트림 BitmapImage
- 6. WinRT
- 7. ushort []에서 BitmapImage 만들기
- 8. WPF BitmapImage Serialization/Deserialization
- 9. BitmapImage in code
- 10. BitmapImage disposable을 만드는 방법
- 11. 바이트 배열에서 BitmapImage 만들기
- 12. W 8.1 로딩 BitmapImage
- 13. InteropBitmap to BitmapImage
- 14. byte [] from Silverlight의 BitmapImage
- 15. BitmapImage WPF 만들기
- 16. 바이트 배열에서 BitmapImage 만들기
- 17. Flex Bitmapimage 툴팁?
- 18. BitmapImage 대 ImageBrush의 성능
- 19. WPF BitmapImage 인쇄
- 20. 캔버스에 BitmapImage 추가
- 21. 웹에서 BitmapImage 가져 오기
- 22. BitmapImage PixelWidth 및 UriSource와
- 23. Flex BitmapImage URL에서로드되지 않음
- 24. DataTemplate에 태그로 BitmapImage 전달하기
- 25. BitmapImage : 닫힌 StreamSource에 액세스하기
- 26. Flex 4.5 BitmapImage 스파크
- 27. Windows Phone - 자르기 BitmapImage
- 28. 웹 API에 BitmapImage 게시
- 29. BitmapImage 및 비트 맵
- 30. BitmapImage/System.Windows.Media.Imaging은 어디에 있습니까?
Pls는 해결책으로 게시물을 표시하거나 마지막으로 무슨 짓을했는지 지적 고려 –