Ogólny błąd w GDI+ [Naprawiono]

Ogólny błąd w GDI+ [Naprawiono]

Podczas próby zmodyfikowania obiektu bitmapowego, zapisania lub przesłania obrazu na serwer sieci Web może zostać wyświetlony komunikat o błędzie Wystąpił błąd ogólny w GDI+ . Błąd może wystąpić niezależnie od używanej aplikacji. Ten post zawiera najbardziej odpowiednie rozwiązania, które użytkownicy, których dotyczy problem, mogą zastosować, aby rozwiązać problem.

Co to jest GDI+?

Windows GDI+ udostępnia grafikę wektorową 2D, obrazy i typografię, działając jako warstwa pośrednia między aplikacjami i sterownikami urządzeń do renderowania grafiki, obrazów i tekstu 2D. GDI+ ulepsza interfejs urządzenia graficznego systemu Windows (GDI) (interfejs urządzenia graficznego zawarty we wcześniejszych wersjach systemu Windows), dodając nowe funkcje i optymalizując istniejące. Innymi słowy, GDI+ to podsystem graficzny systemu Windows, który składa się z interfejsu programowania aplikacji (API) do wyświetlania grafiki i tekstu sformatowanego zarówno na wyświetlaczu wideo, jak i na drukarce.

Ogólny błąd w GDI+

Ogólny błąd zgłoszony przez błąd GDI+ jest bardzo ogólny, ponieważ wyjątek nie zawiera żadnych szczegółów. Jeśli jednak napotkasz ten problem, poniższe sugestie powinny pomóc w rozwiązaniu problemu w zależności od scenariusza lub wykonanego zadania.

1] Uruchom ponownie środowisko docelowe, a następnie powtórz akcję, którą śledziłeś. Zadziałało to w przypadku dotkniętych użytkowników wdrażających lub przenoszących aplikacje z wdrożenia do produkcji.

2] Ten błąd może wystąpić z powodu ustawienia „blokady” podczas próby zapisania i zastąpienia zmodyfikowanej mapy bitowej, ponieważ podczas inicjowania obiektu Bitmap z obrazu przechowywanego na dysku twardym tworzy blokadę na podstawowym pliku obrazu. Innymi słowy, gdy obiekt Bitmap lub Image jest tworzony z pliku, plik pozostaje zablokowany na czas działania obiektu. W rezultacie nie można zmienić obrazu i zapisać go z powrotem w tym samym pliku, w którym został utworzony. W takim przypadku wykonaj jedną z następujących czynności, aby rozwiązać problem:

  • Zamiast zastępować plik, zapisz nowy plik pod inną nazwą niż oryginalny plik.
  • Jeśli chcesz zastąpić istniejący plik, utwórz oddzielną bitmapę z istniejącej mapy bitowej, a następnie usuń starą bitmapę, co odblokuje plik obrazu. Możesz teraz wprowadzić niezbędne zmiany w nowej bitmapie i zapisać nową bitmapę z oryginalną nazwą pliku obrazu.
  • Zapisz w „pośrednim” strumieniu pamięci. Kod Memory /FileStreamvs bitmap.Save(...), choć jest sprzeczny z intuicją, powinien działać z niewielkimi zmianami, aby uwzględnić wywoływanie dowolnej konkretnej metody.

Zwróć uwagę, że podstawowa blokada pliku jest zwalniana tylko po usunięciu obiektu Bitmap — po zwolnieniu blokady możesz ją zastąpić.

3] Musisz pozbyć się swoich obrazów, ponieważ jeśli polegasz na garbage collectorze, aby znaleźć je na czas i zwolnić niezarządzane zasoby GDI, prawdopodobnie otrzymasz wyjątek. Ponadto pisząc kod, zwróć uwagę na następujące punkty:

  • ConvertToWygląda na marnotrawstwo, po prostu użyj go, jeśli potrzebujesz.
  • Jeśli chcesz połączyć ścieżki, użyj Path.Combine.
  • Użyj interpolacji ciągów zamiast dodawać ciągi razem.
  • Jeśli chcesz zmienić znaczenie znaku, na przykład odwrotnego ukośnika, użyj Verbatim String Literal @”…”.
  • Zawsze faworyzuj usingoperatora, który nigdy nie zapomina usunąć obiektu, nawet jeśli kod zgłasza wyjątek.

4] Brak uprawnień do zapisu w folderze podczas zapisywania pliku, zwłaszcza jeśli pojawi się błąd na stronie, ponieważ strona działa z ograniczonymi uprawnieniami. W aplikacji internetowej pula aplikacji lub konto, na którym jest uruchamiany serwis WWW, musi mieć dostęp do zapisu w folderze, w którym ma zostać zapisany plik, więc upewnij się, że folder, w którym próbujesz zapisać plik, jest zapisywalny. Na przykład, jeśli korzystasz z witryny na koncie DefaultAppPool, musisz przyznać IIS AppPool\DefaultAppPoolużytkownikowi uprawnienia do zapisu w folderze.

5] Jeśli używasz platformy Azure i podczas otwierania mapy bitowej tylko na zdalnym serwerze sieci Web, a nie na lokalnej maszynie testowej, pojawia się błąd ogólny w GDI+, GDI+ może znajdować się na serwerach Azure IIS. nie obsługuje nowych formatów BMP utworzonych przez GIMP. Jeśli tak, wykonaj jedną z poniższych czynności, aby rozwiązać problem:

  • Zapisz ponownie BMP za pomocą farby.
  • Zamiast tego użyj nieskompresowanego pliku PNG.
  • Zapisz jako 24-bitowy BMP z GIMP. Ta metoda da słabą jakość.

6] Ten komunikat o błędzie jest wyświetlany, jeśli ścieżka, do której nawigujesz Bitmap.Save(), jest nieprawidłowa (folder nie istnieje itp.). Mówiąc najprościej, piszesz złą ścieżkę, aby zapisać obraz. W takim przypadku popraw ścieżkę zapisu i upewnij się, że ścieżka zawiera również nazwę pliku.

7] Jeśli plik mapy bitowej już istniał na dysku systemowym, a aplikacja dała błąd, wykonaj następujące kroki:

  • Upewnij się, że folder docelowy istnieje.
  • Upewnij się, że w folderze docelowym nie ma już pliku o tej nazwie.
  • Sprawdź uprawnienia folderu, w którym obraz jest zapisany na dysku lokalnym. Aby to zrobić, kliknij folder prawym przyciskiem myszy, a następnie wybierz Właściwości > Zabezpieczenia > Edytuj > Dodaj — wybierz Wszyscy i zaznacz pole Zezwól na pełną kontrolę .

Jak rozwiązać ogólny błąd w GDI+ w C#?

Jeśli otrzymujesz błąd ogólny w GDI+ w języku C#, może to być spowodowane tym, że plik mapy bitowej, który próbujesz zapisać, już istnieje na dysku systemowym. W takim przypadku możesz upewnić się, że folder docelowy istnieje i nie zawiera już pliku o tej samej nazwie.

Co to jest błąd GDI+?

GDI+ zgłasza błąd, gdy nie może zapisać plików, zwykle z dwóch najczęstszych powodów. Jednym z powodów jest to, że gdy inicjujesz obiekt Bitmap z obrazu przechowywanego na dysku twardym, tworzy blokadę na podległym pliku obrazu. Z powodu blokady podczas próby zapisania i nadpisania zmodyfikowanej mapy bitowej zgłaszany jest ten błąd.

Jak naprawić okna GDI?

Aby naprawić błąd GDI+ Windows na swoim urządzeniu, sprawdź, czy działają następujące sugestie:

  • Uruchom skanowanie SFC w wierszu polecenia z podwyższonym poziomem uprawnień.
  • Uruchom narzędzie do rozwiązywania problemów z zasilaniem.
  • Zaktualizuj sterownik karty graficznej.
  • Sprawdź Windows Update.
  • Uruchom komputer w trybie czystego rozruchu.

Co to jest GDI na moim laptopie?

GDI umożliwia twórcom aplikacji wyświetlanie informacji na ekranie lub drukarce bez martwienia się o szczegóły konkretnego urządzenia wyświetlającego. Twórca aplikacji wywołuje metody udostępniane przez klasy GDI+, a te z kolei wykonują odpowiednie wywołania określonych sterowników urządzeń. GDI+ izoluje aplikację od sprzętu graficznego i to właśnie ta izolacja umożliwia programistom tworzenie aplikacji niezależnych od urządzeń.

Windows nadal używa GDI?

Wraz z pojawieniem się systemu Windows XP, GDI zostało przestarzałe na rzecz jego następcy, podsystemu GDI+ opartego na C++. Chociaż GDI+ jest dołączony do systemu Windows XP i nowszych, biblioteka GDI+ DLL może być również dostarczana z aplikacją i używana we wcześniejszych wersjach systemu Windows.

Źródło: Klub Windows

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *