Zoom automatique sur une image dans .NET

J’envisage un projet d’apprentissage personnel. Utilisation de .NET (de préférence VB) Je souhaite créer une application de bureau simple dont la seule fonction est d’afficher des bandes dessinées, comme l’affichage CD, mais avec une navigation plus avancée. Je veux pouvoir zoomer en cliquant sur certaines zones d’une image, des panneaux individuels par exemple, et faire en sorte que la zone de zoom soit automatiquement accrochée au panneau et mise en place. Les images sont généralement dans un format standard comme .jpeg, .png, etc.

Quelque chose comme ça, c’est ce que je vais faire: http://iphonecomicbookreader.com/

Je ne suis même pas sûr de comment cela s’appelle? Cartographie d’image? Tone mapping peut-être? Est-il possible de le faire dans .NET ou cela nécessiterait-il une sorte de bibliothèque externe? Les échantillons de code seraient bien, mais de toute évidence, c’est une demande assez vague. Le simple fait d’être orienté dans la bonne direction serait très utile.

Merci

Vous pouvez le faire entièrement dans .Net. Voici un excellent aperçu du sujet:

http://www.codeproject.com/KB/books/1861004990.aspx

C’est C #, mais ce n’est vraiment pas difficile de traduire ces choses en VB. Dans les deux langues, il suffit de créer des objects et de définir des propriétés, etc.

Essentiellement, vous chargez l’image d’origine dans un object Bitmap (à l’aide de méthodes intégrées). Lorsque vous souhaitez effectuer un zoom avant sur un élément, vous définissez un object Rectangle qui décrit la région sur laquelle vous souhaitez effectuer un zoom, puis utilisez la méthode DrawImage de votre object Graphics pour copier et redimensionner cette région dans une nouvelle image bitmap que vous affichez ensuite. comme. L’exemple de code montre comment utiliser toutes ces méthodes.

La seule partie relativement difficile serait de déterminer automatiquement les limites de chaque panneau. Cela peut être particulièrement difficile si certains des panneaux ont une forme irrégulière (comme Family Circus, comme si quelqu’un lit cela), ou si le scan de la bande dessinée n’est pas parfaitement aligné. Il peut être préférable d’inclure des bandes dessinées dans votre application contenant l’image d’origine, ainsi que des régions que vous avez prédéfinies et qui décrivent les limites des panneaux.

Si vous rencontrez des problèmes lors de l’utilisation des échantillons, postez une autre question ici et je (et des milliers d’autres) seront heureux de vous aider.

Mise à jour : voici un exemple d’application que j’ai écrit et qui montre essentiellement comment procéder avec .Net. Exécutez le programme, puis cliquez sur chacun des panneaux de la bande dessinée et une image agrandie de chaque panneau sera affichée ci-dessous. Je posterai le code pour cela dans une seconde.

Mise à jour 2 : voici le code source .

Mise à jour 3 : et voici la bande dessinée originale en contexte. Considérez ceci comme mon hommage à Jeff Atwood. 🙂