2011-02-14 17 views
6

Önceki araştırmalarda, bir görüntüdeki MetaData özelliklerini ayarlamak çok zor değil. Örneğin, bir JPEG resmini bir Bitmap nesnesine okuyabilir ve "Orijinal Alıntı" tarihini resmin SetPropertyItem yöntemiyle değiştirebilirim (bunu yapmak için de biçimi ve numaralandırmayı da araştırmıştım). Gerçek MetaData kısmı kolay görünse deJPEG meta verilerini ayarla - uygulama sorunları

Ancak, ben rahatsız edici uygulama sorunları bir çift ile karşı karşıya am:

1) bitmap Kaydet() çağırdığınızda, görünmüyor görüntünün orijinal kodlama ayarları kullanılır. Sonuç olarak, sıkıştırma seviyesi değişir (muhtemelen bazı varsayılan değerlere); Dosya boyutu, Save() çağrısından sonra önemli ölçüde küçülüyor. Görüşme sırasında bir resim için kodlama ayarlarını Kaydet() olarak özelleştirebileceğinizi biliyorum, ama dürüst olmak gerekirse, sadece resmin meta verilerini değiştirmek istiyorum; Orijinal kodlama ayarlarını kullanarak görüntüyü kaydetmenin kolay bir yolu yok mu? Resmin mevcut kodlama ayarlarını doğrudan Kaydet() çağrısında referans göstersem bile, bu yardımcı olur.

2) Görünüşe göre, bir Bitmap nesnesine okunduğunuzda orijinal dosya kilitli. Sonuç olarak, görüntüyü orijinal dosya isminin altında çok fazla karışıklık olmadan kaydedemiyorum: Şu anda, dosyadan okuduğum görüntüyü bir ekran üzeri bitmap üzerine çiziyorum, orijinal görüntüyü imha ediyorum ve sonra ekran dışı bitmap. Yine de, tüm yapmak istediğim bir görüntü dosyasındaki meta verileri güncellemesi gerektiğinde bu çok fazladan fazla iş gibi görünüyor.

Sunulabileceğin herhangi bir öneri en çok takdir edilecek ... bir JPEG dosyasının meta verilerini güncellemek için yapmak zorunda olduğum işin miktarı (çoğunun gerçek metadata değişikliği ile ilgisi yok) beni yönlendiriyor Bunu yapmanın daha kolay veya daha iyi yollarını kaçırıp kaçırmadığımı merak ediyorum.

+1

JPEG bir ** kayıplı ** biçimidir ve her zaman size aynı ayarları kullansanız bile bilgi kaybedersiniz kaydedin:

düzenleme EXIF ​​için bu kod örneğine bakın. Bunun etrafındaki tek yol, görüntüyü sıkıştırmayan bir kütüphane kullanmaktır. –

cevap

1

Ne yapmak istediğiniz EXIF ​​verilerini düzenlemek. Şu an yaptığınız şey imajı yeniden sıkıştırmaktır ve fark ettiğiniz gibi bu da kalite kaybına neden olacaktır. http://www.dreamincode.net/code/snippet3144.htm

+0

Bir resimdeki exif etiketleri 36867, 306 ve 36868'i güncelleştirmek için bu kod örneğini kullandım ve etiketlerin gerçekten ayarlandığını doğruladım. Öyle olsa bile, fareyi Windows Gezgini'nde kaydedilen görüntü üzerinde tuttuğumda, araç ipucu hala bu üç etikette belirttiğim yeni tarih yerine eski tarihte çekildiğini söylüyor. Kaybettiğim başka bir şey var mı? Ayrıca, dosya boyutu hala orijinalinden farklıdır; JPEG’e ulaşmanın ve bazı şeyleri yeniden oluşturmadan, bazı meta verileri değiştirmenin bir yolu yok mu? –

+0

Dosya boyutu ne kadar farklı? Evet, işe yaramalı ve sadece EXIF ​​verilerini düzenle. Hmmm. Ayrıca, Windows Gezgini thumb.db içinde bilgi önbelleğe almış olabilir, ancak emin değilim. – Brad

İlgili konular